0
已解决
赵毅恒
资深守护
资深守护
for(int i=1;i<=n;++i)
{
cin>>s[i].Y>>s[i].S>>s[i].E>>s[i].J;
if((s[i].Y+s[i].S+s[i].E+s[i].J)/4>90)
cout<<"A\n";
else if((s[i].Y+s[i].S+s[i].E)/3>80&&s[i].J>=90)
cout<<"B\n";
else if(s[i].Y==100||s[i].Y>=60&&s[i].S==100||s[i].S>=60&&s[i].E==100||s[i].E>=60&&s[i].J==100||s[i].J>=60)
cout<<"C\n";
else
cout<<"D\n";
}
求大佬找错
0
已采纳
方亦欧
新手光能
新手光能
if((double)(y+s+e+j)/4>90)
cout<<"A\n";
else if((double)(y+s+e)/3>80 && j>=90)
cout<<"B\n";
else if((y==100 || s==100 || e==100 || j==100) && y>=60 && s>=60 && e>=60 && j>=60)
cout<<"C\n";
else cout<<"D\n";
(y,s,e,j就是你程序里的是s[i].y,s[i].s,s[i].e,s[i].j)
你的程序错在把这四个变量当做整型来计算,正如栾峻岩所说的那个例子,如果你按照整型来计算是不对的,所以加个强制类型转换就对了。
1
栾峻岩
初级天翼
初级天翼
if((s[i].Y+s[i].S+s[i].E+s[i].J)/4>90)
cout<<"A\n";
错了,万一有一种情况:
语文:90 数学:90 英语:90 计算机:91 平均分:90.25 你的程序只能输出B,但正确结果是A
应该为:
if (a+b+c+d>360)
cout<<"A\n";
100AC
else if((s[i].Y+s[i].S+s[i].E)/3>80&&s[i].J>=90)
cout<<"B\n";
错了,和上面一样。
else if (a+b+c>240 && d>=90)
cout<<"B\n";
0
0