c语言:用指针方式编写函数模块,求多门课程的平均成绩,同时找出最高、最低成绩,分段等统计。
时间: 2023-07-16 14:16:37 浏览: 96
C语言程序设计-统计出若干个学生的平均成绩,最高分以及得最高分的人数;
5星 · 资源好评率100%
以下是用指针方式编写的函数模块,实现求多门课程的平均成绩,同时找出最高、最低成绩,分段等统计。
```c
#include <stdio.h>
#define MAX_COURSES 10 // 最大课程数
#define MAX_SCORES 100 // 最大分数
void statistics(float *scores, int n, float *average, float *max, float *min, int *countA, int *countB, int *countC, int *countD, int *countE)
{
float sum = 0; // 总成绩
*max = *min = scores[0]; // 初始化最高、最低成绩
*countA = *countB = *countC = *countD = *countE = 0; // 初始化分段统计
for (int i = 0; i < n; i++)
{
sum += scores[i]; // 累加总成绩
if (scores[i] > *max) // 更新最高成绩
{
*max = scores[i];
}
if (scores[i] < *min) // 更新最低成绩
{
*min = scores[i];
}
// 分段统计
if (scores[i] >= 90)
{
(*countA)++;
}
else if (scores[i] >= 80)
{
(*countB)++;
}
else if (scores[i] >= 70)
{
(*countC)++;
}
else if (scores[i] >= 60)
{
(*countD)++;
}
else
{
(*countE)++;
}
}
*average = sum / n; // 计算平均成绩
}
int main()
{
float scores[MAX_COURSES]; // 分数数组
int n; // 课程数
float average, max, min; // 平均成绩、最高成绩、最低成绩
int countA, countB, countC, countD, countE; // 分段统计
printf("请输入课程数:");
scanf("%d", &n);
printf("请输入%d门课程的分数:", n);
for (int i = 0; i < n; i++)
{
scanf("%f", &scores[i]);
}
statistics(scores, n, &average, &max, &min, &countA, &countB, &countC, &countD, &countE);
printf("平均成绩是:%.2f\n", average);
printf("最高成绩是:%.2f\n", max);
printf("最低成绩是:%.2f\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", countE);
return 0;
}
```
使用该函数模块可以方便地统计多门课程的平均成绩、最高成绩、最低成绩以及分段统计等信息。
阅读全文