#include <stdio.h>
struct STU
{
int num;
char name[20];
float grade;
};
int main()
{
struct STU stu[5]={{10101,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",86},{10108,"Ling",73.5},{10110,"Fun",100}};
//结构体数组的定义及初始化
struct STU temp;
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(stu[j].grade>stu[j+1].grade)
{
temp.grade=stu[j].grade;
stu[j].grade=stu[j+1].grade;
stu[j+1].grade=temp.grade;
}
}
printf("%d %s %f\n",stu[j+1].num,stu[j+1].name,stu[j+1].grade);
}
printf("%d %s %f\n",stu[j].num,stu[j].name,stu[j].grade);
printf("%d %s %f\n",stu[j-1].num,stu[j-1].name,stu[j-1].grade);
}
中间第22行 到 第24行修改如下:
temp =stu[j];
stu[j] =stu[j+1];
stu[j+1]=temp;