读书人

代码找茬大伙儿来修改吧很简单的

发布时间: 2012-09-16 17:33:16 作者: rapoo

代码找茬,大家来修改吧,很简单的
[code=C#][/code]#include <stdio.h>
#include <stdlib.h>
main()
{
int a,M,H,L,i;
float b;
char c[8];
printf("请输入成绩:");
scanf("%f",&b);
while(b)
{
printf("\a\a");
printf("对不起,输入成绩不能为小数,请重新输入!!!\n");
scanf("%d",&b);
}
for(i=0;i<8;i++)
scanf("%c",&c[i]);
while(c[i])
{
printf("\a\a");
printf("系统无法识别此成绩,请重新输入!!!\n");
scanf("%c",&c[i]);
}
scanf("%d",&a);
while(a<0||a>100)
{
printf("\a\a");
printf("成绩输入错误,请重新输入!!!\n");
scanf("%d",&a);
}
if(a>=85)
M=a;
else
if(a>=60)
H=a;
else
if(a<60)
L=a;
switch(a)
{
case 'M': printf("成绩优秀\n");break;
case 'H': printf("成绩良好\n");break;
case 'L': printf("成绩不及格\n");break;
}
system("pause");
return 0;
}

[解决办法]
LZ你在判断输入是否合法时,也太有意思了吧?直接判断输入数据占用的内存大小不就可以了。一般来说,char是一个字节,int是2个字节,float是4个。你可以在你机器上调试一下,看看具体多少。。而且你的第一个判断也有错误,如果第一次b输入的是整数,也会被你误判?whil(b)是在b为非负时都成立,不管是float型还是int型!

读书人网 >C语言

热点推荐