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

#include<stdio.h>main(){inta;printf("请选择答案:");printf("2+5=?\n");printf("A.8\nB.7\nC.6... #include<stdio.h>
main()
{
int a;
printf("请选择答案:");
printf("2+5=?\n");
printf("A.8\nB.7\nC.6\nD.9\n");
scanf("%c",&a);
if(a=='A')
printf("错误,你真是个傻瓜!");
if(a=='B')
printf("正确,你很棒!");
if(a=='C')
printf("错误,你再笨不过了!");
if(a=='D')
printf("错误,你还能再傻一点吗?");
if(a!='A'&&a!='B'&&a!='C'&&a!='D')
printf("错误,没有这个选项!");
}
为什么不用逻辑或“||"而用逻辑与“&&”呢?
展开
 我来答
kaixingui2012
2012-11-03 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6169万
展开全部
#include<stdio.h>
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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lywdx1129
2012-11-03 · 超过19用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:57万
展开全部
if(a!='A'&&a!='B'&&a!='C'&&a!='D')如果改成 “||”,意思是只要一个为真,后面的就不用判断了,判断结果为真,执行if里面的语句。所以这里不能用“||”,因为如果用“||”,当你输入“B”的时候,这句话 printf("错误,没有这个选项!");也会被执行。。。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b3b2968
2012-11-03
知道答主
回答量:26
采纳率:0%
帮助的人:16.8万
展开全部
用“||”无论你输入什么都会输出"错误,没有这个选项!"的。用“||”满足其中一个条件语句为真,“&&”需要满足所有条件语句才为真。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-11-03
展开全部
它在此是表示出去A.B.C.D四个选项若用“或”的话,只要有一个成立则表达式就成立的,与题目要求不一,因此只能用“与”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孙永超fight
2012-11-03 · TA获得超过732个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:666万
展开全部
if(a!='A'&&a!='B'&&a!='C'&&a!='D')如果用逻辑或的话,其中一个条件必要会成立,则总会运行printf("错误,没有这个选项!");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式