用结构体实现输入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"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct student
{
unsigned int id;
char name[10];
int point;
} stu;
int main()
{
stu sut1[5];//多一个位置用以排序
int i, j;
for (i = 0; i < 4; i++)
{
printf("输入第%d个学生的信息:学号、姓名、成绩\n");
scanf("%u %s %d", &stu1[i].id, &syu1[i].name, &stu1[i].point);
}
for (j = 4; j > 0; --j)
{
for (i = 0; i < 3; i++)
{
if (stu1[i].point < stu1[i + 1].point)
{
stu1[4] = stu1[i];
stu1[i] = stu1[i + 1];
stu1[i + 1] = stu1[4];
}//排序处理
}
}
puts("排序后学生的信息为:");
for (i = 0; i < 4; i++)
{
printf("%u %s %d\n", stu1[i].id, stu1[i].name, stu1[i].point);
}
system("pause");
return 0;
}