编写一个C语言程序:在主函数中定义一维数组int array[10],自定义以下函数:输入数组元素,输出数组元素、求数组元素平均值、输出数组元素最大值、输出数组元素最小值、查找某数值元素是否存在(若存在,请输出下标)、给数组元素排序,要求在主函数中对各子函数进行调用和测试。
时间: 2024-12-20 08:31:35 浏览: 4
在C语言中,你可以按照以下步骤编写一个包含所需功能的程序:
```c
#include <stdio.h>
// 函数声明
void input_array(int array[], int size);
double calculate_average(int array[], int size);
void find_max_min(int array[], int size, int *max_index, int *min_index);
int search_value(int array[], int size, int value);
void sort_array(int array[], int size);
int main() {
// 定义数组
int array[10];
// 输入数组元素
printf("Enter 10 integers:\n");
input_array(array, sizeof(array) / sizeof(array[0]));
// 输出数组元素
printf("\nArray elements:\n");
for (int i = 0; i < sizeof(array) / sizeof(array[0]); i++) {
printf("%d ", array[i]);
}
printf("\n");
// 计算并输出平均值
double average = calculate_average(array, sizeof(array) / sizeof(array[0]));
printf("Average: %.2f\n", average);
// 输出最大值和其索引
int max_value, max_index;
find_max_min(array, sizeof(array) / sizeof(array[0]), &max_index, &max_value);
printf("Max value is %d at index %d\n", max_value, max_index);
// 输出最小值和其索引
int min_value, min_index;
find_max_min(array, sizeof(array) / sizeof(array[0]), &min_index, &min_value);
printf("Min value is %d at index %d\n", min_value, min_index);
// 查找并打印某个值是否存在及其索引
int target = 5; // 指定要查找的值
int search_result = search_value(array, sizeof(array) / sizeof(array[0]), target);
if (search_result != -1) {
printf("Value %d found at index %d\n", target, search_result);
} else {
printf("Value %d not found\n", target);
}
// 对数组进行排序
sort_array(array, sizeof(array) / sizeof(array[0]));
printf("\nSorted array:\n");
for (int i = 0; i < sizeof(array) / sizeof(array[0]); i++) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
// 辅助函数:输入数组
void input_array(int array[], int size) {
for (int i = 0; i < size; i++) {
scanf("%d", &array[i]);
}
}
// 辅助函数:计算平均值
double calculate_average(int array[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += array[i];
}
return (double)sum / size;
}
// 辅助函数:寻找最大值和最小值及下标
void find_max_min(int array[], int size, int *max_index, int *min_index) {
*max_index = *min_index = 0;
*max_value = array[0], *min_value = array[0];
for (int i = 1; i < size; i++) {
if (array[i] > *max_value) {
*max_value = array[i];
*max_index = i;
}
if (array[i] < *min_value) {
*min_value = array[i];
*min_index = i;
}
}
}
// 辅助函数:查找指定值的索引
int search_value(int array[], int size, int value) {
for (int i = 0; i < size; i++) {
if (array[i] == value) {
return i;
}
}
return -1; // 如果未找到则返回-1
}
// 辅助函数:排序数组(这里仅提供冒泡排序作为示例)
void sort_array(int array[], int size) {
for (int i = 0; i < size - 1; j++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
```
阅读全文