#include <stdio.h> #define N 40 int Average(int score[], int n); int ReadScore(int score[]); int GetAboveAver(int score[], int n); int main(void) { int score[N],m,n; n = ReadScore(score); printf("Total students are %d\n", n); m = GetAboveAver(score, n); if (m != -1) printf("Students of above average is %d\n", m); return 0; } int Average(int score[], int n) { int i, sum = 0; for (i=0; i<n; i++) { sum += score[i]; } return n>0 ? sum/n:-1; } int ReadScore(int score[]) { int i=-1; do{ i++; printf("Input score:"); scanf("%d", &score[i]); }while (score[i] >= 0); return i; } int GetAboveAver(int score[], int n) { int i, count = 0, aver; aver = Average(score, n); if (aver == -1) return -1; printf("Average score is %d\n", aver); for (i=0; i<n; i++) { if (score[i] >= aver) count++; } return count; }
时间: 2024-04-29 08:19:07 浏览: 14
这段代码是一个 C 语言程序,主要实现了读取学生成绩,计算平均分数,以及统计高于平均分的学生人数。函数包括:
- `int Average(int score[], int n)`:计算学生的平均分数,其中 `score[]` 表示学生成绩数组,`n` 表示学生人数;
- `int ReadScore(int score[])`:读取学生成绩,将其存储到 `score[]` 数组中;
- `int GetAboveAver(int score[], int n)`:统计高于平均分的学生人数,其中 `score[]` 表示学生成绩数组,`n` 表示学生人数。
在 `main()` 函数中,首先调用 `ReadScore()` 函数读取学生成绩,并将其存储到 `score[]` 数组中。然后调用 `GetAboveAver()` 函数统计高于平均分的学生人数,并输出结果。
需要注意的是,在 `ReadScore()` 函数中,输入的学生成绩必须为非负数,否则会结束输入。如果输入了负数,函数会返回当前已经输入的学生人数。在 `Average()` 函数中,如果学生人数为 0,函数会返回 -1,表示无法计算平均分数。在 `GetAboveAver()` 函数中,如果无法计算平均分数,函数也会返回 -1。
相关问题
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_STUDENTS 100 // 最多支持100个学生 struct date{ int year; int month; int day; }; typedef struct { int num; // 学号 char name[20]; // 姓名 char sex[5]; // 性别 struct date birthday; // 出生日期 int score[3]; // 三门功课成绩 int total; // 总分 double average; // 平均分 } student; student students[MAX_STUDENTS]; // 学生数组 int num_students = 0; // 学生数量
这段代码定义了一个名为student的结构体,其中包含了学生的学号、姓名、性别、出生日期、三门功课成绩、总分和平均分等信息。同时还定义了一个名为date的结构体,用来表示学生的出生日期。
另外还定义了一个名为students的数组来存储学生信息,数组的长度为MAX_STUDENTS,即最多支持100个学生。还定义了一个变量num_students用来记录当前学生数量。
这段代码的作用是定义了一些数据结构和变量,用来存储和处理学生信息。具体的操作需要在其他代码中实现。
有五个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数据,要求打印每个学生3门课总平均成绩(包括学号、姓名、3门课的成绩),以及最高分的学生的数据(包括学号、姓名、3门课的成绩和平均成绩)。(30分) 要求用input函数输入5个学生数据;用average函数求总平均分;用max函数找出最高分的学生数据;总平均分和最高分的学生的数据都在主函数中输出。 #include <stdio.h> #include<string.h> #define N 5 #define M 3 stru
ct student{
char id[10];
char name[20];
float score[3];
float average;
};
void input(student *p){
int i;
for(i=0;i<N;i++){
printf("请输入第%d个学生的学号、姓名和3门课的成绩:\n",i+1);
scanf("%s%s%f%f%f",p[i].id,p[i].name,&p[i].score[0],&p[i].score[1],&p[i].score[2]);
p[i].average=(p[i].score[0]+p[i].score[1]+p[i].score[2])/3;
}
}
float average(student *p){
int i,j;
float aver=0;
for(i=0;i<N;i++){
aver+=p[i].average;
}
return aver/N;
}
void max(student *p){
int i;
int max_index=0;
float max_score=p[0].average;
for(i=1;i<N;i++){
if(p[i].average>max_score){
max_score=p[i].average;
max_index=i;
}
}
printf("平均成绩最高的学生是:%s, 学号:%s, 平均成绩:%.2f, 三门课的成绩分别为:%.2f, %.2f, %.2f\n",p[max_index].name,p[max_index].id,p[max_index].average,p[max_index].score[0],p[max_index].score[1],p[max_index].score[2]);
}
int main(){
student stu[N];
input(stu);
float aver=average(stu);
printf("5个学生的平均成绩为:%.2f\n",aver);
max(stu);
return 0;
}
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)