|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 licker 于 2012-11-24 17:00 编辑
//下面的程序,判断输入的字符是否为(Y、y)其中的一个,然后执行相应的操作;
//代码如下:
#include <stdio.h>
struct stu
{
char name;
};
int main()
{
struct stu person;
printf("请输入测试字符(Y/y):");
fflush(stdin);
scanf("%c", &person.name);
while((person.name != 'y') || (person.name != 'Y'))
//问题出现在上面while的那一行,这行代码的意思,如果我没理解错误的话,
//应该是:当person.name 不等于 'Y' 或者 person.name 不等于 'y' 的时候,
//然后执行循环。 运算符"||"难道不是 “或者” 的意思吗?理论上程序应该
//把输入的字符,先对比 'y' 再和 'Y'对比的呀... 奇怪的是,无论我怎么输
//入,程序永远循环...判断的表达式不起作用... 但当我将 || 改为 &&,程序就通过了,真是奇怪...
{
printf("请重新输入测试字符:");
fflush(stdin);
scanf("%c", &person.name);
}
printf("输入%c正确!\n",person.name);
}
//求助中!!!!谢谢各位!!
|
|