在主函数中定义一个数组,内放10个学生成绩,调用一个子函数,求数组中元素最大值、最小值、平均值。最后,请在主函数中输出10个学生中的最高分、最低分以及10个人的平均分。
时间: 2023-06-05 10:47:15 浏览: 188
题目描述:在主函数中定义一个数组,内放10个学生成绩,调用一个子函数,求数组中元素最大值、最小值、平均值。最后,请在主函数中输出10个学生中的最高分、最低分以及平均分。
解题思路:首先,在主函数中定义一个包含10个学生成绩的数组,通过调用子函数求出数组中元素的最大值、最小值、平均值,再通过传递参数的方式,在主函数中输出最高分、最低分以及平均分即可。
代码实现:
```python
def calculate(arr):
max_val = max(arr)
min_val = min(arr)
avg_val = sum(arr) / len(arr)
return max_val, min_val, avg_val
arr = [78, 92, 85, 99, 80, 88, 91, 95, 87, 93]
max_score, min_score, avg_score = calculate(arr)
print("最高分:", max_score)
print("最低分:", min_score)
print("平均分:", avg_score)
```
输出结果:
```python
最高分: 99
最低分: 78
平均分: 88.8
```
最后,我们可以看到,通过调用子函数,在主函数中求得了数组中元素的最大值、最小值、平均值,并在主函数中输出了10个学生中的最高分、最低分以及平均分。
相关问题
编写一个C语言程序:在主函数中定义一维数组int array[10],自定义以下函数:输入数组元素,输出数组元素、求数组元素平均值、输出数组元素最大值、输出数组元素最小值、查找某数值元素是否存在(若存在,请输出下标)、给数组元素排序,要求在主函数中对各子函数进行调用和测试。
在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;
}
}
}
}
```
编写程序exp5_1.c,在主函数中定义一维数组int array[10],自定义以下函数:输入数组元素,输出数组元素、求数组元素平均值、输出数组元素最大值、输出数组元素最小值、查找某数值元素是否存在(若存在,请输出下标)、给数组元素排序,要求在主函数中对各子函数进行调用和测试。
好的,以下是编写程序exp5_1.c的要求:
1. 在主函数中定义一维数组int array[10]。
2. 自定义以下函数:
- 输入数组元素:使用for循环输入数组元素。
- 输出数组元素:使用for循环输出数组元素。
- 求数组元素平均值:使用for循环计算数组元素总和,再除以数组长度。
- 输出数组元素最大值:使用for循环遍历数组,找到最大值并输出。
- 输出数组元素最小值:使用for循环遍历数组,找到最小值并输出。
- 查找某数值元素是否存在:使用for循环遍历数组,找到该数值元素并输出下标。
- 给数组元素排序:使用冒泡排序法对数组元素进行排序。
3. 在主函数中对各子函数进行调用和测试。
希望这些信息能够帮助你编写程序exp5_1.c。
阅读全文