不知道为什么当我输入n为3时,只能输进去两行。
而且感觉程序编的也不大行,
帮忙看看提提意见。
#include<stdio.h>
struct students{
int num;
char name[15];
char sex;
int age;
double grade;
};
int main(void)
{
int n, i, j;
struct students stu[10], *p[10], temp;
scanf("%d", &n);
for(i=0;i<n;i++){
scanf("%d", &stu[i].num);
scanf("%s", stu[i].name);
scanf("%c", &stu[i].sex);
scanf("%d", &stu[i].age);
scanf("%lf", &stu[i].grade);
}
for(i=0;i<n;i++){
p[i]=&stu[i];
}
for(i=0;i<n;i++){
for(j=0;j<n-1;j++){
if(p[j]->grade<p[j+1]->grade){
temp=*p[j+1];
*p[j+1]=*p[j];
*p[j]=temp;
}
}
}
for(i=0;i<=n;i++){
printf("%d %s %s %d %d\n", p[i]->num, p[i]->name, p[i]->sex, p[i]->age, p[i]->grade);
}
}