#include<stdio.h> typedef struct student{ int xh; char name[32]; int score; char level; }STU[100]; int main(){ int count=0; int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d %s %d",&STU[i].xh,&STU[i].name,&STU[i].score); } for(int j=0;j<n;j++){ if(STU[j].score>=85){ STU[j].level='A'; }else if(STU[j].score>=70&&STU[j].score<85){ STU[i].level='B'; }else if(STU[j].score>=60&&STU[j].score<70){ STU[j].level='C'; }else{ count++; } } for(int k=0;k<n;k++){ printf("%d %s %c\n",STU[k].xh,STU[k].name,STU[k].level); printf("%d",count); } return 0; }修正代码
时间: 2024-03-17 14:45:09 浏览: 40
好的,以下是修正后的代码:
```
#include<stdio.h>
typedef struct student{
int xh;
char name[32];
int score;
char level;
} STU[100];
int main(){
int count = 0;
int n;
scanf("%d", &n);
STU students; // 定义结构体数组
for(int i = 0; i < n; i++){
scanf("%d %s %d", &students[i].xh, students[i].name, &students[i].score);
}
for(int j = 0; j < n; j++){
if(students[j].score >= 85){
students[j].level = 'A';
}
else if(students[j].score >= 70 && students[j].score < 85){
students[j].level = 'B';
}
else if(students[j].score >= 60 && students[j].score < 70){
students[j].level = 'C';
}
else{
count++;
}
}
for(int k = 0; k < n; k++){
printf("%d %s %c\n", students[k].xh, students[k].name, students[k].level);
}
printf("%d", count); // 输出不及格学生的人数
return 0;
}
```
主要修改如下:
1. 将结构体数组的定义从变量名 STU 改为 students,并在 main 函数中定义。
2. 在计算等级时,将 STU[i].level 改为 students[j].level。
3. 在输出时,将输出不及格学生的人数的语句移动到最后,避免重复输出。
阅读全文