#include <stdio.h>
#include <stdlib.h>
typedef struct student
{
unsigned num;
char name[10];
int score;
}STUDENT;
int main()
{
int i,j;
STUDENT stu[4];
STUDENT temp;
for(i=0;i<4;i++)
{
printf("输入第%d个学生的信息:学号、姓名、成绩\n",i+1);
scanf("%d %s %d",&stu[i].num,stu[i].name,&stu[i].score);
}
printf("排序后学生的信息为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3-i;j++)
{
if(stu[j].score<stu[j+1].score)
{
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
}
}
for(i=0;i<4;i++)
{
printf("%d %s %d\n",stu[i].num,stu[i].name,stu[i].score);
}
return 0;
}
用结构体实现输入4个学生的学号(无符号整数)、姓名(字符串)和考试成绩(整数),然后按从高分到低分的顺序排列后输出。 程序的运行示例如下: 输入第1个学生的信息:学号、姓名、成绩 2011 zhangsan 89 输入第2个学生的信息:学号、姓名、成绩 2012 lisi 96 输入第3个学生的信息:学号、姓名、成绩 2013 wangwu 67 输入第4个学生的信息:学号、姓名、成绩 2014 liuliu 59 排序后学生的信息为: 2012 lisi 96 2011 zhangsan 89 2013 wangwu 67 2014 liuliu 59 输入提示:"输入第%d个学生的信息:学号、姓名、成绩\n" 输入格式:"%d %s %d" 输出提式:"排序后学生的信息为:\n" 输出格式:"%d %s %d\n"
注意:无符号整型:unsigned
姓名是一个字符数组;
冒泡排序:外层循环控制排序的遍数,内层循环控制数组中相邻元素的交换。