永发信息网

c++开关语句的问题?

答案:4  悬赏:0  手机版
解决时间 2021-02-18 02:09
计划是遇1输出*其他输出空格,可是都只输出*
#include<iostream.h>
void main()
{
int i,j;
int l[3][3]={1,0,1,1,1,0,0,0,1};
cout<<"is"<<endl;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cout<<l[i][j];
switch (l[i][j]='1')
{

case'1':cout<<"*";
break;
default:cout<<" ";
}
if(j-1%3==1)
{
cout<<endl;
}
}
}
}
最佳答案
switch (l[i][j])
{

case 1:cout<<"*";
break;
default:cout<<" ";
}
这里这样写
全部回答
1、全部输出*的原因: switch (l[i][j]='1') // 这里用的"="是赋值的意思,这个执行之后l[i][j]=='1'了(实际是'1'的ASCII码值49),且等式l[i][j]='1'的值为'1',所以必然进入下面的 case '1'了,打印出* { case'1':cout<<"*"; break; default:cout<<" "; } 2、修改建议 像这种只有两个分支的,用不着用switch呀,if就可以了。 if (1==l[i][j]) //此处等于的判定推荐把常数放在前面,这样如果把“==”误写作"=",编译时会报错 { cout<<"*"; } else { cout<<" "; }
switch 判断的不对。应该是 switch(l[i][j]) { case 1: .... } 你的l[i][j]是个整数,你如果写'1'则是一个char,类型不一样。
楼上的说用i==3;可以执行,因为i的值不确定,所以i==3这个判断语句的值要么为0,要么为1 所以程序最后输出的结果为abcd switch()里面可以放表达式,case后面不能为表达式. 程序运行结果为bcdabcd switch(i=3)i=3的表达式的值为3 所以case 2不执行,从case 3开始执行,一直到遇到break或者switch结束为止.所以就输出bcdabcd 准确的应为: switch(i=3) { case 2 :cout<<"a"; case 3 :cout<<"b"; case 4 :cout<<"c"; case 5 :cout<<"d"; default : cout<<"abcd"; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
【大学物理公式】大学物理公式
北京吉利大学-管理学院地址在哪,我要去那里
申请英国留学,有纸质的大学录取通知书吗
Office软件显示未经授权产品,打开了都打不起
名妆秀养生美容会所地址在什么地方,想过去办
劳拉与光之守护者 如何存档
上海财经大学附属中学-羽毛球馆地址有知道的
为什么图标上有个盾啊?怎么去掉
外出游玩时所带的食物中,炸鸡腿一定是你的首
溢彩堂怎么去啊,有知道地址的么
深入研究中国古代天文历法的书有哪些
【亚热带常绿阔叶林】亚热带常绿阔叶林一般分
纬达化纤在什么地方啊,我要过去处理事情
韩国carino丽仁堂triple correct cc creamCC
魅蓝Note5手机处理器怎么样
推荐资讯
三星sm-g3608怎么root
靖宇县安全生产监督管理局怎么去啊,有知道地
高手求助,91手机助手iphone版在电脑上打开后
地基土的冻胀性类别可分为不冻胀、弱冻胀、冻
不锈钢焊接时焊缝强度比母材高吗
雅歌音乐培训学校塘下校区地址在哪,我要去那
求购一款能同时插两张电信卡的手机,价格么10
少年宫旁边的博物馆全名是什么?
女子十大名器组图 必须带图文的!!
刻薄成家,理无久享
全职高手怎么语c莫凡
闲情酒吧地址有知道的么?有点事想过去
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?