有n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出学生的信息。
请问我这个编写的有什么问题吗?
#include<stdio.h>
/*********Begin*********/
struct student
{
char id[11];
char name[20];
int score;
}student[10];
/*********End**********/
int main(void)
{
/*********Begin*********/
int i,j,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s %s %d",student[i].id,student[i].name,student[i].score);
}
struct student t;
for(i=0;i<n;i++)
{
for(j=i+1;i<n+1;j++)
{
if(student[j].score>student[i].score)
{
t=student[i];
student[i]=student[j];
student[j]=t;
}
}
}
for(i=0;i<n;i++)
printf("%s %s %d",student[i].id,student[i].name,student[i].score);
/*********End**********/
return 0;
}
至少有一个错,输入要改为
scanf("%s %s %d",student[i].id,student[i].name,&student[i].score);
整形的要取地址的
热门标签: