#include
#include
#include
struct Stduent
{
int age ;
float score;
char name [10] ;
};
int main ()
{ struct Stduent t;
printf("请输入学生人数:\n");
int len;
printf("len=");
scanf("%d",&len);
struct Stduent * padd;
padd = (struct Stduent *)malloc(len * sizeof(struct Stduent));
int i,j;
for (i=0;i {
printf("请输入第%d个学生的信息:\n",i+1);
printf("age=");
scanf("%d",&padd[i].age);
printf("score=");
scanf("%f",&padd[i].score);
printf("name=");
printf("%s",padd[i].name);
}
for(i=0;i {
for(j=0;j {
if(padd[j].score>padd[j+1].score)
{ t= padd[j];
padd[j]=padd[j+1];
padd[j+1]=t;
}
}
}
for (i=0;i<len;++i)
{
printf("第%d个学生的信息是:\n",i+1);
printf("age=%d\n",padd[i].age);
printf("score=%s\n",padd[i].score);
printf("name=%c\n",padd[i].name);
}
return 0;
}
你这代码就有问题啊。for循环那里是什么东西?把源码好好整理下再发出来吧
for (i=0;i<len;++i) {
printf("第%d个学生的信息是:\n",i+1);
printf("age=%d\n",padd[i].age);
printf("score=%s\n",padd[i].score);
printf("name=%c\n",padd[i].name);
}
而且最后输出的时候字符串要用%s输出,%c是字符,最后一行写成
printf("name=%s\n",padd[i].name);
printf("请输入第%d个学生的信息:\n",i+1);
printf("age=");
scanf("%d",&padd[i].age);
printf("score=");
scanf("%f",&padd[i].score);
printf("name=");
printf("%s",padd[i].name);
最后一行的scanf写成printf了