写出以下程序的运行结果

#include<stdio.h>main(){inta=2,b=7,c=5;switch(a>0){case1:switch(b<0){case1:printf("@"... #include <stdio.h>
main()
{
int a=2,b=7,c=5;
switch (a>0)
{
case 1:switch (b<0){
case 1:printf("@");break;
case 2:printf("!");break;
}
case 0:switch (c==5){
case 1:printf("*");break;
case 2:printf("#");break;
default:printf("#");break;
}
default:printf("&");
}
printf("\n");
}
运行结果是 *& 不知道为什么啊
展开
 我来答
郝在益
2013-07-04 · TA获得超过2079个赞
知道小有建树答主
回答量:1496
采纳率:54%
帮助的人:640万
展开全部

这个是因为你没有在case后面写break所导致的。

写程序要按照格式写,自己也好修改,你看看下面我给你改的格式,是不是比你的清晰多了。

#include <stdio.h>
main()
{
 int a=2,b=7,c=5;
 switch (a>0)
 {
     case 1:
         switch (b<0)
         {
             case 1:printf("@");break;
             case 2:printf("!");break;
         }
         //   break;这里,你差一个break,所以继续执行case 0
     case 0:
         switch (c==5)
         {
             case 1:printf("*");break;
             case 2:printf("#");break;
             default:printf("#");break;
         }
         //   break;这里,你差一个break,所以继续执行default
     default:printf("&");
 }
 printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
分配内存
2013-07-04 · 超过22用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:42.3万
展开全部
a=2,a>0为真,进入case1,而b=7,b<0为假,switch(b<0)中没有case0,无输出;
switch(a>0)中的case1没有break,再进入case0,c==5为真,故输出*;
switch(a>0)中的case0没有break,,再进入default,输出&。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式