C语言switch问题
答案:5 悬赏:30 手机版
解决时间 2021-08-12 01:47
- 提问者网友:玫瑰园
- 2021-08-11 06:05
#include "stdio.h"
main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1: switch(y)
{
case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
case 3:a++;b++;break;
default:printf("Grammar error !\n");
}
printf("\na=%d,b=%5d\n",a,b);
}
这个语句比较简单,我想问:1 :最后输出的结果是什么? 2:我是用VC6.0创建的c++ 编译的时候总提示错误“one multiply defined symbols found ‘ 问题到底出在哪?
最佳答案
- 五星知识达人网友:独行浪子会拥风
- 2021-08-11 07:02
最后输出结果,a=2,b=1 one multiply defined symbols found 说明你的VC6.0安装有问题,不信你打个非常简单自己确定没有错误的程序,它可能还是会报错,你我在我的电脑上就直接能运行,把你的VC6.0卸载了,重新安装,要不只能重新下一个……
#include "stdio.h"
main()
{
int x=1,y=0,a=0,b=0;
switch(x) x=1运行case1
{
case 1: switch(y) y=0运行case0
{
case 0:a++;break; 遇到break,跳出switch(y)
case 1:b++;break;
}
case 2:a++;b++;break;跳到这里,遇到break,跳出~
case 3:a++;b++;break;
default:printf("Grammar error !\n");
}
printf("\na=%d,b=%5d\n",a,b);
}
全部回答
- 1楼网友:廢物販賣機
- 2021-08-11 10:35
switch语句当情况没有办法区分时,不支持嵌套。你这里使用了嵌套
- 2楼网友:行路难
- 2021-08-11 09:03
a=1 b=0
打开vc
新建 工程 选win32 Application
加入文件名 默认项 完成
新建 C++ Source File源文件 输入文件名 完成
粘贴你的代码
插入下面一行
wndclass.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH);
看看能不能编译通过 运行出来了
- 3楼网友:杯酒困英雄
- 2021-08-11 08:34
#include <stdio.h>
int main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:
switch(y)
{
case 0:
a++;
break;
case 1:
b++;
break;
}
//break;//不加个break还会往下执行分支的哦
case 2:
a++;
b++;
break;
case 3:
a++;
b++;
break;
default:
printf("Grammar error !\n");
}
printf("\na=%d,b=%d\n",a,b);
return 0;
}//VC6.0编译通过
- 4楼网友:爱难随人意
- 2021-08-11 07:43
结果应该是a=2,b=1,因为你在switch(x)里,case 1中只是对switch(y)的break,而没有对x执行break,所以会执行case 2的a++和b++再break,所以a=2,b=1。。。至于编译,看不出有什么问题啊,你的工程没建错吧?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯