奖学金申请判断 - C++ 代码实现
奖学金申请判断 - C++ 代码实现
问题描述:
小美是个勤奋努力的大学生。小美想要获得奖学金。
小美总共修习了 n 门课程,每门课程都有一个学分 ai ,而这门课小美的成绩是 bi 。
小美所在的学校对于奖学金的评定非常简单:只要所有课程的均分不低于一个给定的标准 X,而且没有任何课程挂科,就可以申请奖学金。
均分是指所有课程的成绩按照学分加权的平均值(即 ),而一门课挂科即该课成绩低于60分。
现在小美会给你总共若干次询问,询问在每种课业情况下她能否申请奖学金。
输入格式:
第一行一个正整数 T ,表示询问的次数。
对于每次询问:
第一行两个正整数 n, X ,表示课程的数目和均分要求。
第二行 n 个正整数a1,a2,...,an 表示各课的学分。
第三行 n 个非负整数b1,b2,...,bn 表示各课的成绩。
数字间两两有空格隔开
输出格式:
对于所有的数据,1≤n≤1000, 1≤T≤10, 1≤ai≤10, 0≤bi≤100, 90≤X≤100
对于每次询问,输出 'Yes' 或者 'No' (不包括引号)表示能或不能申请奖学金。
思路:
先计算出总学分、总成绩,再判断是否有不及格的科目和平均分是否达到要求即可。注意最后输出的是 Yes 或 No,不要漏了大小写。
代码:
#include <iostream>
using namespace std;
int main() {
int T, n, X, ai, bi, sum_score = 0, sum_credit = 0;
cin >> T;
while (T--) {
cin >> n >> X;
sum_score = 0;
sum_credit = 0;
bool flag = true;
for (int i = 0; i < n; i++) {
cin >> ai >> bi;
sum_credit += ai;
sum_score += ai * bi;
if (bi < 60) {
flag = false;
}
}
if (flag && (double)sum_score / sum_credit >= X) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/oE47 著作权归作者所有。请勿转载和采集!