#include<stdio.h> #define n 200 struct student { long num; char name[20]; float score; }; void main() { int i, j; struct student stu[n + 1]; struct student *p_stu; p_stu = stu+1; for (i = 1; p_stu <= stu + n; p_stu++, i++){ printf("请输入第%d个学生的学号 ", i); scanf("%d", &p_stu->num); printf("请输入第%d个学生的姓名 ", i); scanf("%s", p_stu->name); printf("请输入第%d个学生的成绩 ", i); scanf("%f",&p_stu->score); } //按照成绩从低祷告的顺序进行排序 for (i = 1; i <= n; i++){ for (j = 1; j <= n - 1; j++){ if (stu[j].score > stu[j + 1].score){ stu[0] = stu[j]; stu[j] = stu[j + 1]; stu[j + 1] = stu[0]; } } } p_stu = stu + 1; for (; p_stu <= stu + n; p_stu++){ printf("按照成绩从低祷告的顺序进行排序结果为: "); printf("学号:%d ", p_stu->num); printf("姓名:%s ", p_stu->name); printf("成绩:%g ", p_stu->score); } p_stu = &stu[n]; printf("最高成绩为: "); printf("学号:%d ", p_stu->num); printf("姓名:%s ", p_stu->name); printf("成绩:%g ", p_stu->score); }