用java实现小美是个勤奋努力的大学生。小美想要获得奖学金。 小美总共修习了 n 门课程,每门课程都有一个学分 ai ,而这门课小美的成绩是 bi 。 小美所在的学校对于奖学金的评定非常简单:只要所有课程的均分不低于一个给定的标准 X,而且没有任何课程挂科,就可以申请奖学金。 均分是指所有课程的成绩按照学分加权的平均值(即 ),而一门课挂科即该课成绩低于60分。 现在小美会给你总共若干次询问,询问在每种课业情况下她能否申请奖学金。
时间: 2024-02-27 14:59:19 浏览: 92
好的,这是一个比较简单的问题,可以用Java实现。以下是代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // 课程数
int x = sc.nextInt(); // 均分标准
int[] a = new int[n]; // 学分
int[] b = new int[n]; // 成绩
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
b[i] = sc.nextInt();
}
int q = sc.nextInt(); // 询问次数
while (q-- > 0) {
int sumScore = 0; // 总成绩
int sumCredit = 0; // 总学分
boolean fail = false; // 是否挂科
for (int i = 0; i < n; i++) {
int score = sc.nextInt();
if (score < 60) {
fail = true;
}
sumScore += score * a[i];
sumCredit += a[i];
}
double avgScore = (double) sumScore / sumCredit; // 均分
if (avgScore >= x && !fail) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
}
```
输入格式:
第一行包含两个整数 n 和 x ,表示课程数和均分标准。
接下来 n 行,每行包含两个整数 ai 和 bi,表示第 i 门课的学分和成绩。
接下来一行包含一个整数 q ,表示询问次数。
接下来 q 行,每行包含 n 个整数,表示每门课的成绩。
输出格式:
对于每次询问,输出一行,表示小美是否能申请奖学金。如果可以,输出 YES,否则输出 NO。
希望对你有帮助!
阅读全文