【4.1日题解】——奖学金(纯c工程代码表述)

请添加图片描述

☘前言☘

今天开始参与一下打卡计划,今天的题目不是很难,其实就是一个简单的模拟题。但是因为最近在实习,最大的改进就是编码
【4.1日每日一题打卡】——奖学金

🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人
✨联系方式:2201891280(QQ)
全文大约阅读时间: 20min



P1093 [NOIP2007 普及组] 奖学金
解题思路

直接使用内置的排序函数,写好排序算法就好了。但是一定要注意代码规范,相应的传参一定要规范!!

#include <stdio.h>
#include <stdlib.h>

typedef struct{
        int id, c, m, e, total;
}Score;

Score score[300];

int cmp(const void * a, const void *b){//固定函数定义
        Score *p = (Score *)a, *q =(Score *) b;//强转
        if(p->total != q->total) //对比总分
                return p->total > q->total ? -1: 1;//-1就是不变 1就是调整顺序就是反序
        if(p->c != q->c)    //对比语文成绩
                return p->c > q->c ? -1: 1;
        return p->id < q->id ? -1: 1;//对比id号 这里是小的在前面
}
int main(){
        int n;
        scanf("%d",&n);
        for(int i = 0;i < n;++i){
                scanf("%d %d %d", &score[i].c, &score[i].m, &score[i].e);
                score[i].total = score[i].c + score[i].m + score[i].e;
                score[i].id = i+1;
        }
        qsort(score, n, sizeof(Score),cmp);
        for(int i = 0;i < 5;i++)
                printf("%d %d\n", score[i].id, score[i].total);
        return 0;
}

​​​​​​​​​​​在这里插入图片描述


📑写在最后

一个新的开始吧,希望可以跟着执梗大佬一起走到最后。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XingleiGao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值