media值要四舍五入,使用round函数。。。如果有幸有后来的小伙伴看我代码,记得避坑我下面一个写法。我也是调试好久发现问题。
#include <cstdio>
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
double a , b , c , d , e , media , Media , z;
cin >> a >> b >> c >> d;
media = (a * 2 + b * 3 + c * 4 + d * 1) / 10;
Media = round(media * 10) / 10;
printf("Media: %.1lf\n", Media);
if(media >= 7.0) printf("Aluno aprovado.\n");
if(media < 5.0) printf("Aluno reprovado.\n");
if(media >= 5.0 && media <= 7.0)
{
printf("Aluno em exame.\n");
cin >> e;
printf("Nota do exame: %.1lf\n", e);
z = (media + e) / 2;
//z = floor(z * 10) / 10;
if(z >= 5.0) printf("Aluno aprovado.\n");
else printf("Aluno reprovado.\n");
printf("Media final: %.1lf\n", z);
}
return 0;
}
无法AC版本,自己留意问题所在。
#include <cstdio>
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
double a , b , c , d , e , media , z;
cin >> a >> b >> c >> d;
media = (a * 2 + b * 3 + c * 4 + d * 1) / 10;
media = round(media * 10) / 10;
printf("Media: %.1lf\n", media);
if(media >= 7.0) printf("Aluno aprovado.\n");
if(media < 5.0) printf("Aluno reprovado.\n");
if(media >= 5.0 && media <= 7.0)
{
printf("Aluno em exame.\n");
cin >> e;
printf("Nota do exame: %.1lf\n", e);
z = (media + e) / 2;
//z = floor(z * 10) / 10;
if(z >= 5.0) printf("Aluno aprovado.\n");
else printf("Aluno reprovado.\n");
printf("Media final: %.1lf\n", z);
}
return 0;
}