用c语言设计一个程序计算某班某门课程的平均成绩,同时统计大于平均成绩的人数。对该问题进行分析,写出你的程序设计方案,包括(1)需要编写的函数原型(即函数名、函数类型、形参)及该函数的功能,各形参的类型及意义(2)各函数的调用关系。
时间: 2024-02-22 10:58:42 浏览: 102
1. 函数设计方案:
函数名:average_score
函数类型:void
形参:
- int scores[]:存储学生成绩的数组
- int n:学生人数
- float *average:指向平均成绩的指针
- int *count:指向大于平均成绩人数的指针
函数功能:计算某班某门课程的平均成绩,同时统计大于平均成绩的人数
函数名:print_result
函数类型:void
形参:
- float average:平均成绩
- int count:大于平均成绩的人数
函数功能:输出计算结果
2. 各函数的调用关系:
average_score函数计算平均成绩和大于平均成绩的人数,然后将结果传递给print_result函数进行输出。主函数调用average_score函数,再调用print_result函数输出结果。
完整的程序如下:
```c
#include <stdio.h>
void average_score(int scores[], int n, float *average, int *count);
void print_result(float average, int count);
int main() {
int n;
printf("请输入学生人数:");
scanf("%d", &n);
int scores[n];
printf("请输入%d位学生的成绩:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &scores[i]);
}
float average;
int count;
average_score(scores, n, &average, &count);
print_result(average, count);
return 0;
}
void average_score(int scores[], int n, float *average, int *count) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += scores[i];
}
*average = (float)sum / n;
*count = 0;
for (int i = 0; i < n; i++) {
if (scores[i] > *average) {
(*count)++;
}
}
}
void print_result(float average, int count) {
printf("平均成绩:%.2f,大于平均成绩的人数:%d\n", average, count);
}
```
阅读全文