661. 平均数3
读取 44 个数字 N1,N2,N3,N4,这 4 个数字都是保留 1 位小数的浮点数,对应于学生获得的 4 个分数。
这 4 个分数的权重分别为 2,3,4,1,请你计算学生成绩的平均值 XX 并输出 Media: X
。
接下来分为以下三种情况:
- 如果平均值为 7.0 或更高,则输出
Aluno aprovado.
。 - 如果平均值小于 5.0,则输出
Aluno reprovado.
。 - 如果平均值大于等于 5.0 并且小于 7.0,则输出
Aluno em exame.
,并再读取一个数字 Y,然后输出Nota do exame: Y
。接下来重新计算平均值 Z=(X+Y)/2,如果 Z 大于或等于 5.0,则输出Aluno aprovado.
,否则输出Aluno reprovado.
。最后输出Media final: Z
,表示学生的最终成绩。
输入格式
输入中包含四个浮点数,表示学生的四个成绩。
也有部分满足情况 3 的数据,多包含一个浮点数。
输出格式
输出的结果均保留 1 位小数,具体形式参照题目描述和输出样例。
数据范围
0≤输入数据≤10.0
输入样例1:
2.0 4.0 7.5 8.0
6.4
输出样例1:
Media: 5.4
Aluno em exame.
Nota do exame: 6.4
Aluno aprovado.
Media final: 5.9
输入样例2:
2.0 6.5 4.0 9.0
输出样例2:
Media: 4.9
Aluno reprovado.
输入样例3:
9.0 4.0 8.5 9.0
输出样例3:
Media: 7.3
Aluno aprovado.
// printf 输出值会自动四舍五入,但printf("%.1lf\n", 4.85);输出的是4.8
// 4.85 加上一个超小数才输出了4.9.
#include <cstdio>
int main()
{
double n1, n2, n3, n4, x, y, z;
scanf("%lf%lf%lf%lf", &n1, &n2, &n3, &n4);
x = (n1 * 2 + n2 * 3 + n3 * 4 + n4) / 10;
printf("Media: %.1lf\n", x + 0.0000001); // 不加一个超小数就通过不了
if (x >= 7) printf("Aluno aprovado.\n");
else if (x < 5) printf("Aluno reprovado.\n");
else
{
printf("Aluno em exame.\n");
scanf("%lf", &y);
printf("Nota do exame: %.1lf\n", y);
z = (x + y) / 2;
if (z >= 5) printf("Aluno aprovado.\n");
else printf("Aluno reprovado.\n");
printf("Media final: %.1lf", z);
}
return 0;
}