解题思路:
使用结构体设置比总分,比语文,再比学号,定义,用一个数组输入,
在排序加入结构体,最后输出;
参考代码:
#include
using namespace std;
int n;
struct stu{
int xh,yw,sx,yy,zf;//学号,语文,数学,英语,总分;
};
bool cmp(stu a,stu b)
{
if(a.zf!=b.zf) return a.zf>b.zf;//总分大的优先;
if(a.yw!=b.yw) return a.yw>b.yw;//相同的话语文大的优先;
return a.xh<b.xh;//两个都相同,学号小的优先;
}
int main(){
cin>>n;
stu a[n+2];
for(int i=1;i<=n;i++)
{ a[i].xh=i;
cin>>a[i].yw>>a[i].sx>>a[i].yy;//输入数据语文,数学,英语;
a[i].zf=a[i].sx+a[i].yw+a[i].yy;//总分等于数学+语文+英语;
}sort(a+1,a+1+n,cmp);
if(n>5)
for(int i=1;i<=5;i++)//因为只奖励前5给人,n不止的话进行特判
cout<<a[i].xh<<" "<<a[i].zf<<endl;
else
for(int i=1;i<=n;i++)//n有可能是3 4 这些,不能直接循环5;
cout<<a[i].xh<<" "<<a[i].zf<<endl;//输出学号和总分
return 0;
}
0.0分
131 人评分
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:570 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:895 |
求圆的面积 (C语言代码)浏览:1756 |
K-进制数 (C语言描述,蓝桥杯)浏览:955 |
C二级辅导-等差数列 (C语言代码)浏览:891 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:712 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:692 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:487 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:608 |
小九九 (C++代码)简单粗暴,直接输出浏览:683 |