C语言编程100题-7.1

本文介绍了一个使用C语言实现的学生信息管理系统,该系统能够输入学生信息,并使用冒泡排序算法按成绩从高到低对学生信息进行排序。文章提供了完整的代码示例,包括学生信息结构的定义、输入功能、排序算法及输出排序后的学生信息。

7.1
定义包含学号、姓名和成绩的学生信息结构类型,完成以下功能:
(1)键盘输入n个学生信息数据(n从键盘输入);
(2)使用“冒泡法”对学生成绩由高到低排序;
(3)输出排序后学生信息。
输入输出样例如下,数据间以空格分隔。
输入:
3
100001 wang-li 91
100002 chen-da-wei 95
100003 guo-tao 93
输出为:
100002 chen-da-wei 95
100003 guo-tao 93
100001 wang-li 91
样例输入:
2 111111 wang 78 222222 liu 100
样例输出:
222222 liu 100 111111 wang 78

#include<stdio.h>
struct student
{
       int num;
       char name[20];
       float score;
}stu[100];
void sort(struct student stu[], int n)
{
       int i, j;
       struct student t;//再声明一个
       for (i = 0; i < n - 1; i++)//标准冒泡排序
       {
              for (j = i + 1; j < n; j++)
              {
                      if (stu[i].score<stu[j].score)
                      {
                             t = stu[i];
                             stu[i] = stu[j];
                             stu[j] = t;
                      }
                      else if (stu[i].score == stu[j].score)//当成绩一样的时候
                      {
                             if (stu[i].num < stu[j].num)
                             {
                                    t = stu[i];
                                    stu[i] = stu[j];
                                    stu[j] = t;
                             }
                      }
              }
       }
}
int main()
{
       int n;
       int i;
       scanf("%d", &n);
       for (i = 0; i < n; i++)
       {
              scanf("%d", &stu[i].num);
              scanf("%s", &stu[i].name);
              scanf("%f", &stu[i].score);
       }
       sort(stu, n);
       for (i = 0; i < n; i++)
              printf("%d %s %1.0f\n", stu[i].num, stu[i].name, stu[i].score);//为什么要加1.0?
       ///getch();
       system("pause");
       return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值