回复 3楼 北国123456
给你看一个我们考试的一道题,你类比一下,方法是一样的,需要注意的是:数组大小不允许用变量表示
#include <stdio.h>
#define NUM 4
typedef struct info{
int num;
char name[30];
int score;
}INFO;
int main()
{
INFO a[NUM];
int i,j;
INFO temp;
for(i=0;i<NUM;i++)
{
printf("输入第%d个学生的信息:学号、姓名、成绩\n",i+1);
scanf("%d",&a[i].num);
scanf("%s",a[i].name);
scanf("%d",&a[i].score);
}
for(i=0;i<NUM-1;i++){
for(j=NUM-1;j>i;j--){
if(a[j].score>a[j-1].score)
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
}
for(i=0;i<NUM;i++){
printf("%d\t",a[i].num);
printf("%s",a[i].name);
printf("\t%d",a[i].score);
putchar('\n');
}
return 0;
}