C语言程序,请大家帮我看一下我编写的这个程序有问题吗?本人是初学者。

2025-05-19 09:03:22
推荐回答(3个)
回答(1):

#include
int main()
{
char a; //因为你后面比较的是字符,输入的也是字符,所以变量定义成字符较好,不然每个比较都需要强转
printf("请选择答案:");
printf("2+5=?\n");
printf("A.8\nB.7\nC.6\nD.9\n");
scanf("%c",&a);
if(a=='A')
printf("错误,你真是个傻瓜!");
else //如果选项是A,则a一定不是B C D,所以加上else,不然程序凭空多做好几次判断
if(a=='B')
printf("正确,你很棒!");
else
if(a=='C')
printf("错误,你再笨不过了!");
else
if(a=='D')
printf("错误,你还能再傻一点吗?");
else
if(a!='A'&&a!='B'&&a!='C'&&a!='D') //即不是A同时也不是B C D不是&&(与)关系吗 其实有了前面的else,这个if语句可以不写!
printf("错误,没有这个选项!");
return 0;
}

回答(2):

if(a!='A'&&a!='B'&&a!='C'&&a!='D')如果改成 “||”,意思是只要一个为真,后面的就不用判断了,判断结果为真,执行if里面的语句。所以这里不能用“||”,因为如果用“||”,当你输入“B”的时候,这句话 printf("错误,没有这个选项!");也会被执行。。。

回答(3):

用“||”无论你输入什么都会输出"错误,没有这个选项!"的。用“||”满足其中一个条件语句为真,“&&”需要满足所有条件语句才为真。