输入样例: 5 huanglan 83 wanghai 76 shenqiang 50 zhangfeng 95 zhangmeng 60 输出样例: 2 2 1 #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; 2 分 while ( p <= q ){ if ( 2 分 ) cnt_a++; else if ( 2 分 ) cnt_p++; else cnt_f++; p++; } printf("%d %d %d\n", cnt_a, cnt_p, cnt_f); }
时间: 2024-01-12 09:03:47 浏览: 100
补全后的代码如下所示:
```c
#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;
struct student *q = p + n; // 定义指向最后一个学生的指针
while (p < q) {
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 分的人数,并输出这三个人数。需要注意的是,统计时需要遍历所有学生,可以使用指针来实现。另外,在输出时需要注意格式,例如中间的空格和换行符。
阅读全文