c语言用指针方式编写函数模块,求多门课程的平均成绩,同时找出最高、最低成绩,分段等统计
时间: 2024-02-18 08:04:48 浏览: 77
以下是一个使用指针方式编写函数模块,求多门课程的平均成绩,同时找出最高、最低成绩,分段等统计的示例代码:
```c
#include <stdio.h>
// 计算平均成绩、最高成绩、最低成绩和分段统计
void statistics(float *grades, int n, float *average, float *max, float *min, int *countA, int *countB, int *countC, int *countD, int *countF) {
// 初始化变量
*average = 0.0;
*max = *grades;
*min = *grades;
*countA = 0;
*countB = 0;
*countC = 0;
*countD = 0;
*countF = 0;
// 计算平均成绩、最高成绩、最低成绩和分段统计
for (int i = 0; i < n; i++) {
*average += *(grades + i);
if (*(grades + i) > *max) {
*max = *(grades + i);
}
if (*(grades + i) < *min) {
*min = *(grades + i);
}
if (*(grades + i) >= 90) {
(*countA)++;
} else if (*(grades + i) >= 80) {
(*countB)++;
} else if (*(grades + i) >= 70) {
(*countC)++;
} else if (*(grades + i) >= 60) {
(*countD)++;
} else {
(*countF)++;
}
}
*average /= n;
}
int main() {
// 定义成绩数组
float grades[] = {85.5, 76.0, 63.5, 90.5, 72.0, 55.5, 89.0, 93.5, 68.0, 77.5};
// 调用统计函数
int n = sizeof(grades) / sizeof(float);
float average, max, min;
int countA, countB, countC, countD, countF;
statistics(grades, n, &average, &max, &min, &countA, &countB, &countC, &countD, &countF);
// 打印结果
printf("平均成绩:%f\n", average);
printf("最高成绩:%f\n", max);
printf("最低成绩:%f\n", min);
printf("90分以上人数:%d\n", countA);
printf("80-89分人数:%d\n", countB);
printf("70-79分人数:%d\n", countC);
printf("60-69分人数:%d\n", countD);
printf("60分以下人数:%d\n", countF);
return 0;
}
```
这个程序首先定义了一个成绩数组,然后调用了一个名为“statistics”的函数来计算平均成绩、最高成绩、最低成绩和分段统计。在“statistics”函数中,我们使用了指针来操作变量,以便修改变量的值。在计算分段统计时,我们使用了一个if-else结构,并使用指针来修改计数器变量的值。最后,程序打印了计算结果。
阅读全文