不明白为什么输出的名字后有个d
问题:
我的代码:
#include<stdio.h>
typedef struct stu{
int number;
char s[4];
int grade[3];
}stu;
int main(void){
stu stus[10];
int i,k,l;
for(i=0;i<10;i++){
scanf("%d",&stus[i].number);
//stus[i].s[2] = stus[i].s[3] = '\0';
scanf("%s",stus[i].s);
for(k=0;k<3;k++){
scanf("%d",&stus[i].grade[k]);
}
}
float grade1=0,grade2=0,grade3=0;
int maxindex=0;
int sum;
int max= stus[0].grade[0]+stus[0].grade[1]+stus[0].grade[2];
for(i=0;i<10;i++){
grade1+=stus[i].grade[0];
grade2+=stus[i].grade[1];
grade3+=stus[i].grade[2];
sum = 0;
sum = stus[i].grade[0]+stus[i].grade[1]+stus[i].grade[2];
maxindex=(sum>max? i:maxindex);
max=(sum>max? sum:max);
}
printf("%.2f %.2f %.2f\n",grade1/10,grade2/10,grade3/10);
printf("%d %s %.2f %.2f %.2f %.2f",stus[maxindex].number,stus[maxindex].s,(float)(stus[maxindex].grade[0]),(float)(stus[maxindex].grade[1]),(float)(stus[maxindex].grade[2]),(float)(max));
return 0;
}
结果: