#include <stdio.h> #define N 40 int GetAboveAver(int score[], int n); void main() { int score[N], m, n; n = -1; //1 do{ n++; scanf("%d", &score[n]);//1 }while (score[n] >= 0); //e2 m = GetAboveAver(score, n); //2 printf("Students of above average is %d\n", m); } int GetAboveAver(int score[], int n) { int i, sum, aver,count; count = 0;//1 sum = 0;//1 for (i=0; i<n; i++)//1 { sum += score[i];//2 } aver=sum/n;//1 for (i=0; i<n; i++)//1 { if (score[i] >= aver)//2 count++;//1 } printf("Total students are %d\n",n); printf("Average score is %d\n",aver); return count;//1 }
时间: 2024-01-26 10:02:16 浏览: 68
#include <stdio.h>
这是一段 C 语言程序,主要实现了以下功能:
1. 从输入中读取学生的分数,直到输入负数为止;
2. 计算所有学生的平均分数;
3. 统计高于平均分数的学生人数,并输出结果。
具体而言,程序定义了一个 GetAboveAver 函数来计算高于平均分数的学生人数,该函数接受两个参数:一个整型数组 score,存储了所有学生的分数;一个整型变量 n,表示学生总数。GetAboveAver 函数首先计算所有学生的平均分数,然后遍历数组 score,统计高于平均分数的学生人数,并将结果返回给主函数。
在主函数中,程序首先定义了一个整型数组 score 和两个整型变量 m 和 n。然后使用 do-while 循环读入学生的分数,并将其存储在数组 score 中,直到读入负数为止。接着调用 GetAboveAver 函数计算高于平均分数的学生人数,并将结果存储在变量 m 中。最后输出结果。
需要注意的是,程序中使用了一些宏定义和注释来增加代码的可读性,这些内容在实际编译中并不会被编译器处理。
阅读全文