目录
题目描述
输入描述
输出描述
解析
完整代码
描述
学期末学校根据同学们的学习成绩发放奖学金,奖学金的具体金额是这样的:
一等奖学金,共2名同学:500元/人;
二等奖学金,共4名同学:300元/人;
三等奖学金,共4名同学:100元/人;
已知班级n位同学的成绩(10<=n<=100,输入数据保证n位同学的成绩不相等),请按照成绩由高到低,计算出每个成绩应获得的奖学金(没有奖学金的成绩,请输出0)。
输入描述
第1行输入一个整数n(10<=n<=100);
第2行输入n个整数(互不相等);
输出描述
从大到小输出每位同学的奖学金,每行有2个数,每行的第1个数代表同学的成绩,第2个数代表同学的奖学金。
用例输入 1
12 100 98 90 91 89 78 81 88 82 80 85 93
用例输出 1
100 500 98 500 93 300 91 300 90 300 89 300 88 100 85 100 82 100 81 100 80 0 78 0
这题先排序,再根据比例输出相应的结果就行了;
下面出示代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,a[101];
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=n;i>=1;i--){
for(int j=1;j<=i-1;j++){
if(a[j]<a[j+1]) swap(a[j],a[j+1]);
}
}
for(int i=1;i<=n;i++){
if(i<3) cout<<a[i]<<' '<<500<<endl;
else if(i<7) cout<<a[i]<<' '<<300<<endl;
else if(i<11) cout<<a[i]<<' '<<100<<endl;
else cout<<a[i]<<' '<<0<<endl;
}
return 0;
}