成绩排名(PTA)
某学校的成绩单算法如下:
最终成绩 = (A课成绩 * A课学分 + B课成绩 * B课学分 + C课成绩 * C课学分 + D课成绩 * D课学分)/总学分,结果保留两位小数。
如某同学成绩如下:
| 课程名称 | 学 分 | 分 数 |
|---|---|---|
| 算法分析与设计 | 4.0 | 90 |
| 大学物理 | 3.5 | 85 |
| Python程序设计 | 3.0 | 95 |
| 计算机系统基础 | 4.0 | 82.5 |
| 线性代数 | 3.0 | 80 |
则他的最终成绩为
(4.0 * 90 + 3.5 * 85 + 3.0 * 95 + 4.0 * 82.5 + 3.0 * 80)/(4.0+3.5+3.0+4.0+3.0) = 86.43
现在给你几组学生的成绩,要求你计算他们的最终成绩,并对他们进行排名。
输入格式:
第一行输入两个数,学生的个数S(10000以内)及课程数C(100以内)。
第二行输入C个数,分别是C门课程的学分。
接下来的S行,每一行有C个数,这C个数分别代表学生C门课的成绩,每门课的成绩出现顺序与第二行的学分一一对应。
每门课的成绩满分为100分,学分最高不超过10。
输出格式:
输出有S行,由高到低的输出学生的最终成绩,以及学生在输入中出现的次序(从1开始),如果有最终成绩相同的学生,则他们的顺序按输入中的次序有小到大排列。成绩保留两位有效数字。
输入样例:
在这里给出一组输入。例如:
4 2
2.5 4
90 80
94 92.5
80 75
90 95
输出样例:
在这里给出相应的输出。例如:
93.08 2
93.08 4
83.85 1
76.92 3
#include
using namespace std;
void swap(int &a, int &b)
{int temp = a;a = b;b = temp;
}
int main(){int s,c,i,j;//s个学生,c个课程cin >> s >> c;float num[c],ct=0;//num每个学分,ct总学分for(i=0;i> num[i];ct += num[i];}float val[s]={0},k;//val存储成绩,k每次输入成绩int val2[s]={0};for(i=0;i> k;val[i]+=k*num[j];val2[i]=i+1;}val[i]/=ct;}for(i=0;i
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
