题目描述 学校课程考核成绩与绩点关系如下: 一门课程的成绩在 60 分 (不含 60 分)以下不能获得学分,也不能进行学分绩点的计算, 60 ~ 100 分之间按下试计算: 注:在本题中成绩在 60 分以下的课程成绩绩点为 0. 每学年结束应计算学生的平均学分绩点,计算方法如下: 其中: 输入格式 第一行一个整数 t(1 <= t <= 100) 代表测试用例组数。每组测试用例包含三行: 每组测试样例第一行一个整数 n (1 <= n <= 30)表示该学年课程总数, 第二行有 n 个小数 a1, a2, ... , an (0.1 <= ai <= 10.0)表示第 i 门课程的学分数。 第三行有 n 个整数 b1, b2, ... , bn (0 <= bi <= 100)表示第 i 门课程的成绩。 输出格式 对于每组测试用例,输出 n 行每行一个整数代表其该学年平均学分绩点。(结果保留两位小数)用c语音代码输出
时间: 2024-02-07 13:03:33 浏览: 229
以下是C语言的代码实现:
```c
#include <stdio.h>
int main()
{
int t;
scanf("%d", &t);
while (t--) {
int n;
scanf("%d", &n);
double credits[n];
int scores[n];
for (int i = 0; i < n; i++) {
scanf("%lf", &credits[i]);
}
for (int i = 0; i < n; i++) {
scanf("%d", &scores[i]);
}
double gpa_sum = 0;
double credit_sum = 0;
for (int i = 0; i < n; i++) {
if (scores[i] >= 60) {
double gpa = (scores[i] - 60) / 10.0 + 1.0;
if (gpa > 4.0) {
gpa = 4.0;
}
double credit_point = gpa * credits[i];
gpa_sum += credit_point;
credit_sum += credits[i];
}
}
double gpa_avg = gpa_sum / credit_sum;
printf("%.2f\n", gpa_avg);
}
return 0;
}
```
与Python代码类似,对于每个测试用例,先读入学年课程总数n,然后分别读入n个小数和n个整数,分别表示各门课程的学分和成绩。接下来按照上面的计算方法计算平均学分绩点gpa_avg,并输出结果,保留两位小数。需要注意的是,在C语言中输出浮点数需要使用`printf`函数,并指定输出格式为`"%.2f\n"`,表示输出浮点数,保留两位小数,并换行。
阅读全文