读书人

新手程序希望各位专家帮忙看一上

发布时间: 2013-01-06 15:44:47 作者: rapoo

新手程序,希望各位专家帮忙看一下!
计算学生奖学金的等级,以三门功课成绩M1,M2,M3为评讲依据。奖学金评定标准如下:
A等奖:符合下列条件之一者,可得A等奖。
(1)平均分大于95分者。
(2)有两门成绩是100分,且第三门功课成绩不低于80分者。
B等奖:符合下列条件之一者,可得B等奖。
(1)平均分大于90分者。
(2)有一门成绩是100分,且其他成绩不低于75分者。
C等奖:各门功课成绩都不低于75分者。
要求:符合条件者就高不就低,只能获得高的那一项奖学金。学生成绩用键盘输入,输出获奖的等级。
所设程序为:
#include<stdio.h>
void main()
{ flot M1,M2,M3,M;
printf("Enter M1,M2,M3:");
scanf("%f%f%f",&M1,&M2,&M3);
M=(M1+M2+M3)/3;
if(M>95||M1==100&&M2==100&&M3>=80||M2==100&&M3==100&&M1>=80||M1==100&&M3==100&&M2>=80)
printf("A等奖");
else if(M>90||M1==100&&M2>=75&&M3>=75||M2==100&&M1>=75&&M3>=75||M3==100&&M1>=75&&M2>=75)
printf("B等奖");
else if(M1>=75&&M2>=75&&M3>=75)
printf("C等奖");
else
printf("不获奖");
}
请各位专家帮帮忙咯!



[解决办法]
我给你改了下,自己比较下


#include<stdio.h>
void main()
{
float M1,M2,M3,M;
printf("Enter M1,M2,M3:");
scanf("%f %f %f",&M1,&M2,&M3);
M=(M1+M2+M3)/3;
if(M>95
[解决办法]
((M1==100&&M2==100&&M3>=80)
[解决办法]
(M2==100&&M3==100&&M1>=80)
[解决办法]
(M1==100&&M3==100&&M2>=80)))
printf("A等奖");
else if(M>90
[解决办法]
((M1==100&&M2>=75&&M3>=75)
[解决办法]
(M2==100&&M1>=75&&M3>=75)
[解决办法]
(M3==100&&M1>=75&&M2>=75)))
printf("B等奖");
else if(M1>=75&&M2>=75&&M3>=75)
printf("C等奖");
else
printf("不获奖");
}

[解决办法]
这样可以:主要是没有给M赋初始值

float M1,M2,M3,M = 0.0;
printf("Enter M1,M2,M3:\n");
scanf("%f%f%f",&M1,&M2,&M3);
M=(M1+M2+M3)/3;
if(M>95
[解决办法]
M1==100&&M2==100&&M3>=80
[解决办法]
M2==100&&M3==100&&M1>=80


[解决办法]
M1==100&&M3==100&&M2>=80)
printf("A等奖\n");
else if(M>90
[解决办法]
M1==100&&M2>=75&&M3>=75
[解决办法]
M2==100&&M1>=75&&M3>=75
[解决办法]
M3==100&&M1>=75&&M2>=75)
printf("B等奖\n");
else if(M1>=75&&M2>=75&&M3>=75)
printf("C等奖\n");
else
printf("不获奖\n");
[解决办法]


[解决办法]
float M1,M2,M3,M;
printf("Enter M1,M2,M3:");
scanf("%f%f%f",&M1,&M2,&M3);
if(M1>100
[解决办法]
M2>100
[解决办法]
M3>100)
{
printf("EnterAgain M1,M2,M3:");
scanf("%f%f%f",&M1,&M2,&M3);
}
M=(M1+M2+M3)/3;
if(M1>=75&&M2>=75&&M3>=75)
{
if(M>90
[解决办法]
M1==100&&M2>=75&&M3>=75
[解决办法]
M2==100&&M1>=75&&M3>=75


[解决办法]
M3==100&&M1>=75&&M2>=75)
{
if(M3>=80&&M1+M2==200
[解决办法]
M1>=80&&M2+M3==200
[解决办法]
M2>=80&&M1+M3==200
[解决办法]
M>95) //大等280
{
printf("A等奖");
}
else
{
printf("B等奖");
}

}
else
{
printf("C等奖");
}
}
把这段放main函数里试试!!!
[解决办法]
漏写括号,确实可能会造成程序编译错误,
但是,不写括号,可能造成逻辑错误,更加难以调试。
[解决办法]
#include <stdio.h>
int main()
{
float m1,m2,m3,m=0;
printf("enter m1,m2,m3\n");
scanf("%f\n%f\n%f",&m1,&m2,&m3);
m=(m1+m2+m3)/3;
if (m>95
[解决办法]
((m1==100&&m2==100&&m3>=80)&&(m3==100&&m1==100&&m2>=80)&&(m2==100&&m3==100&&m1>=80)))
printf("A\n");
else if (m>90
[解决办法]
((m1==100&&m2>=75&&m3>=75)&&(m3==100&&m1>=75&&m2>=75)&&(m3==100&&m2>=75&&m1>=75)))
printf("B");
else if (m1>=75&&m1>=75&&m1>=75)
printf("C\n");
else
printf("spiderman\n");
return 0;
}


finish

[解决办法]
括号的输入方法应该是一对一起输入。

至于括号的多少,主要是要表达清楚。

读书人网 >C++

热点推荐