#include <stdio.h>
struct student
{
int num;
char name;
float score;
};
int main()
{
struct student stu[5]={
{10101,"li",100},{10102,"zhang",89},{10103,"zhao",90},
{10104,"qian",87},{10105,"sun",99}
};
struct student temp;
const int n=5;
int i,j,k;
printf("输入编号");
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(stu[j].score>stu[k].score)
k=j;
temp=stu[k];
stu[k]=stu[i];
stu[i]=temp;
}
for(i=0;i<n;i++)
printf("%6d %8s %6.2f",stu[i].num,stu[i].name,stu.score);
printf("\n");
return 0;
}
这是要是实现啥功能呢
printf("输入编号"); 也没看见输入语句啊
name应该定义为数组,修改如下:
#include <stdio.h>
struct student
{
int num;
char name[10];
float score;
};
int main()
{
struct student stu[5]={
{10101,"li",100},{10102,"zhang",89},{10103,"zhao",90},
{10104,"qian",87},{10105,"sun",99}};
struct student temp;
const int n=5;
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(stu[j].score>stu[k].score)
k=j;
temp=stu[k];
stu[k]=stu[i];
stu[i]=temp;
}
for(i=0;i<n;i++)
printf("%6d %8s %6.2f\n",stu[i].num,stu[i].name,stu[i].score);
return 0;
}