题干看起来复杂,但都是考查分支,只需要按照题目要求计算平均数即可。因为要控制小数点位数,所以用printf比较方便。
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
double a=0.0,b=0.0,c=0.0,d=0.0;
cin>>a>>b>>c>>d;
double media;
media=a*0.2+b*0.3+c*0.4+d*0.1;
printf("Media: %.1lf\n",media);
if(media>=7.0)
cout<<"Aluno aprovado."<<endl;
if(media<=5.0)
cout<<"Aluno reprovado."<<endl;
else if(media>5.0&&media<7.0)
{
cout<<"Aluno em exame."<<endl;
double y=0.0,z=0.0;
cin>>y;
printf("Nota do exame: %.1lf\n",y);
z=(media+y)/2;
if(z>=5)
cout<<"Aluno aprovado."<<endl;
else
{
cout<<"Aluno reprovado."<<endl;
}
printf("Media final: %.1lf\n",z);
}
return 0;
}