实验13-4:成绩排序(结构体)

5. 实验13-4:成绩排序(结构体)

定义学生结构体,初始化5名学生的学号、姓名及成绩。struct stu s[5]={{201,"Zhang",78},{202,"Li",85},{203,"Wang",60},{204,"Wang",75},{205,"Xue",80}};

编写程序根据用户输入的n值,输出升序或降序排列的学生信息。输入1,输出降序排列的学生信息;输入2,输出升序排列的学生信息。输出格式:"%-8d%-8s%d\n"


【输入形式】
n
【输出形式】
升序或降序排列的学生信息
【样例输入】

1


【样例输出】

202     Li      85
205     Xue     80
201     Zhang   78
204     Wang    75
203     Wang    60
#include<stdio.h>
struct stu{
    int xuehao;
    char name[8];
    int score;
} s[5]={
    {201,"Zhang",78},
    {202,"Li",85},
    {203,"Wang",60},
    {204,"Wang",75},
    {205,"Xue",80}
};
void down(struct stu s[],int x)
{
    struct stu t;
    for(int i=0;i<x;i++)
    {
        for(int j=0;j<x-1-i;j++)
        {
            if(s[j].score<s[j+1].score)
            {
                t=s[j];
                s[j]=s[j+1];
                s[j+1]=t;
            }
        }
    }
    for(int k=0;k<5;k++)
        printf("%-8d%-8s%d\n",s[k].xuehao,s[k].name,s[k].score);
}
void rise(struct stu s[],int x)
{
    struct stu t;
    for(int i=0;i<x;i++)
    {
        for(int j=0;j<x-1-i;j++)
        {
            if(s[j].score>s[j+1].score)
            {
                t=s[j];
                s[j]=s[j+1];
                s[j+1]=t;
            }
        }
    }
    for(int k=0;k<5;k++)
        printf("%-8d%-8s%d\n",s[k].xuehao,s[k].name,s[k].score);
}
 int main()
 {
     int n=0;
     scanf("%d",&n);
     if(n==1)
     down(s,5);
     else
     rise(s,5);
     return 0;
 }

 

下载源文件
得分10.00   最后一次提交时间:2023-06-19 16:43:26

共有测试数据:2
平均占用内存:1.209K    平均CPU时间:0.00248S    平均墙钟时间:0.00247S
 
测试数据评判结果
测试数据1完全正确
测试数据2完全正确

 满分且无警告!嘻嘻。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值