今天开始参与一下打卡计划,今天的题目不是很难,其实就是一个简单的模拟题。
但是因为最近在实习,最大的改进就是编码
【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;
}
📑写在最后
一个新的开始吧,希望可以跟着执梗大佬一起走到最后。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)