题解
2023-07-20 16:45:45
发布于:上海
96阅读
0回复
0点赞
超级长但是比较易懂的题解(不会吧不会吧,不会还有人连这都看不懂吧。。。)
#include <bits/stdc++.h> //万能头
using namespace std; //命名空间
struct student{ //结构体
int id,c,m,e,all; //学号,语文,数学,英语和总分
}a[305]; //结构体a
int main(){ //主函数
int n; //学生数n
cin >> n; //给n赋值
for (int i = 1; i <= n; i++){ //把学生数据存入结构体a
cin >> a[i].c >> a[i].m >> a[i].e;
a[i].all = a[i].c + a[i].m + a[i].e; //计算总分并存入结构体a
a[i].id = i; //存入学号
}
for (int j = 0; j < n; j++){ //冒泡排序
for (int i = 1; i <= n - 1; i++){
if (a[i].all < a[i + 1].all){ //比较总分
swap(a[i], a[i + 1]);
}else if(a[i].all == a[i + 1].all){ //如果总分一样,用语文成绩决定
if (a[i].c < a[i + 1].c){
swap(a[i], a[i + 1]);
} //这里不用再用else,判断学号,因为学号已经经过排序
}
}
}
for (int i = 1; i <= 5; i++){ //打印前五名的数据(学号和总分)
cout << a[i].id << " " << a[i].all << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个