请问这是怎么回事?
这是我编写计算器,输入数字以外的东西就会刷屏,比如说k请问如何解决
这是C语言源代码
#include <stdio.h>
int main ()
{
printf("请根据需要按数字选择1-5: \n加法:1\n减法:2\n乘法:3\n除法:4\n退出:0\n\n") ;
int a=0,b,c,d;
scanf ("%d",&a);
while(a>5)
{printf ("请输入正确的数字1-5:");
scanf("%d",&a);
}
while(a<5)
{
printf("请输入两个整数:");
scanf ("%d %d",&b,&c);
switch(a)
{
case 1:
printf("%d+%d=%d\n",b,c,b+c);
break;
case 2:
printf("%d-%d=%d\n",b,c,b-c);
break;
case 3:
printf("%d*%d=%d\n",b,c,b*c);
break;
case 4:
printf("%d÷%d=%d\n",b,c,b/c);
break;
}
}
return 0;
} while(a<5) 改为if 因为k的ascII码肯定大于5了,记得'a'就是65了 突然发现你外面还有一个
scanf ("%d",&a);
while(a>5)
把这段也改了.
总的来说是这样的流程:
输入k后,k>5,所以这个while开始运行
scanf ("%d %d",&b,&c);
while (a<5) :
if a>5:
continue
else:
(a>5)
本帖最后由 pyt_here 于 2015-3-15 18:13 编辑
结论:
应该是:
while (a<5) :
if a>5:
continue
else:
scanf ... 这位同学,我觉得你应该注意一下缩进,虽然C语言没有说一定要缩进,但是我不知道这样的代码你想看第二遍吗? a的ascII码是97,已经大于5了,还有你的while循环,你输一个和你下面条件没关系的字符,当然会这样啊
页:
[1]