#include<stdio.h> #define MAXN 100 struct student{ char name[20]; int score; }; void cnt_score( struct student *p, int n ); int main() { int i, n; struct student stu[MAXN]; scanf("%d", &n); for(i = 0; i < n; i++){ scanf("%s%d", stu[i].name, &stu[i].score); } cnt_score(stu, n); return 0; } void cnt_score(struct student *p, int n) { int cnt_a = 0, cnt_p = 0, cnt_f = 0; while ( p <= q ){ if ( ) cnt_a++; else if ( ) cnt_p++; else cnt_f++; p++; } printf("%d %d %d\n", cnt_a, cnt_p, cnt_f); }
时间: 2023-11-27 14:50:03 浏览: 100
这段代码中存在一些错误,需要进行修改:
1. 函数 `cnt_score` 中的参数 `q` 没有定义,应该改为 `n`。
2. 在 `while` 循环中的 `if` 判断条件中缺少具体的判断表达式,需要根据题意进行填写。
修改后的代码如下:
```
#include <stdio.h>
#define MAXN 100
struct student{
char name[20];
int score;
};
void cnt_score(struct student *p, int n);
int main(){
int i, n;
struct student stu[MAXN];
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%s%d", stu[i].name, &stu[i].score);
}
cnt_score(stu, n);
return 0;
}
void cnt_score(struct student *p, int n){
int cnt_a = 0, cnt_p = 0, cnt_f = 0;
while (n--){
if (p->score >= 90) cnt_a++;
else if (p->score >= 60) cnt_p++;
else cnt_f++;
p++;
}
printf("%d %d %d\n", cnt_a, cnt_p, cnt_f);
}
```
这个函数的功能是统计学生成绩的分布情况,分为优秀、及格和不及格三类。其中,成绩大于等于 90 分为优秀,成绩大于等于 60 分小于 90 分为及格,成绩小于 60 分为不及格。
阅读全文