关于C的一条小程序

来源:百度知道 编辑:UC知道 时间:2024/06/09 04:57:57
#include <stdio.h>
#include <conio.h>
void main()
{int a,i;
printf("a number guess game!\n");
printf("请输入一位数字:");
scanf("%d",&a);
while (a!=6)
{if (0<=a<=5)
printf("太小啦。\n");
else if (6<a<=9)
printf("差一点点。\n");
else if (a<=0||a>=10)
printf("都说是一位数字啦。\n");
getch();
}
printf("被你蒙着了。");

}
我输入7,应该是出现“差一点点”这行的,但是却显示“太小啦。”,请问是怎么回事呢?

因为,当输入7时,if条件(0<=a<=5)是满足的
这个条件,程序是这样理解的;((0<=a)<=5),0<=a是真的,结果就为1,1<=5也是真的,条件满足,输出“太小啦。”
至于修改,就是楼上说的那样了,a>=0&&a<=5,a>6&&a<=9

可能是你的0<=a<=5格式不对吧 正确的格式应该是a>=0&&a<=5
下面的6<a<=9格式也不对 也应该改为a>6&&a<=9

而且你在定义的时候定义的i好像也没有用到吧

#include <stdio.h>
#include <conio.h>
void main()
{int a,i;
printf("a number guess game!\n");
printf("请输入一位数字:");
scanf("%d",&a);
while (a!=6)
{
if (a>=0&&a<=5)
{
printf("太小啦。\n");
}
else if (a>=6&&a<=9)
{
printf("差一点点。\n");
}
else if (a<=0||a>=10)
{
printf("都说是一位数字啦。\n");
}
getch();
}
printf("被你蒙着了。");
}

还有,你这个程序是死循环,呵呵
把copy到scanf("%d",&a); 放在while里面就好了

#include <stdio.h>