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

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

☘前言☘

今天开始参与一下打卡计划,今天的题目不是很难,其实就是一个简单的模拟题。


但是因为最近在实习,最大的改进就是编码
【4.1日每日一题打卡】——奖学金

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


全文目录
  • ☘前言☘
  • 📑写在最后


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

直接使用内置的排序函数,写好排序算法就好了。


但是一定要注意代码规范,相应的传参一定要规范!!

#include 
#include 

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;
}

​​​​​​​​​​​


📑写在最后

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/562627.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存