用c语言有一个一维数组用于存放10个学生的成绩,要求编写三个函数分别求学生的平均成绩,求10个学生的最高分,求10个学生的最低分,在主函数中调用这三个函数得到结果。的数据分析和算法分析
时间: 2024-05-02 16:20:24 浏览: 69
数据分析:
- 输入数据:一个一维数组,存放了10个学生的成绩
- 输出数据:学生的平均成绩、最高分、最低分
算法分析:
1. 求学生的平均成绩
- 定义一个变量sum,用于累加成绩
- 循环遍历数组,将数组中每个成绩加入sum中
- 计算平均成绩,即sum除以数组长度
2. 求10个学生的最高分
- 定义一个变量max,用于记录最高分,初始值为数组第一个元素
- 循环遍历数组,将每个元素与max比较,如果大于max,则更新max的值
3. 求10个学生的最低分
- 定义一个变量min,用于记录最低分,初始值为数组第一个元素
- 循环遍历数组,将每个元素与min比较,如果小于min,则更新min的值
代码实现:
```c
#include <stdio.h>
float average(float arr[], int len) {
float sum = 0;
for (int i = 0; i < len; i++) {
sum += arr[i];
}
return sum / len;
}
float max(float arr[], int len) {
float max = arr[0];
for (int i = 1; i < len; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
float min(float arr[], int len) {
float min = arr[0];
for (int i = 1; i < len; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
int main() {
float scores[10] = {78, 89, 92, 85, 67, 91, 83, 76, 88, 90};
printf("平均成绩:%.2f\n", average(scores, 10));
printf("最高分:%.2f\n", max(scores, 10));
printf("最低分:%.2f\n", min(scores, 10));
return 0;
}
```
阅读全文