661. 平均数3

661. 平均数3

读取 44 个数字 N1,N2,N3,N4,这 4 个数字都是保留 1 位小数的浮点数,对应于学生获得的 4 个分数。

这 4 个分数的权重分别为 2,3,4,1,请你计算学生成绩的平均值 XX 并输出 Media: X

接下来分为以下三种情况:

  1. 如果平均值为 7.0 或更高,则输出 Aluno aprovado.
  2. 如果平均值小于 5.0,则输出 Aluno reprovado.
  3. 如果平均值大于等于 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;
}

猜你喜欢

转载自blog.csdn.net/qq_42465670/article/details/115070032