for(i=0;1<4;i++;i++) for(k=1;k<3;k++) printf("*"); 结果是 * 为什么呀?

 我来答
XHHISEA02274
推荐于2017-09-01 · TA获得超过8万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:3457万
展开全部

代码有误,正确为:for(i=0;1<4;i++,i++) for(k=1;k<3;k++) printf("*");

输出内容为:****

内循环每次循环两次,即k=1和k=2的时候,输出一个*;外循环共执行2次,即i=0和i=2的时候,因为执行了两次i++,所以不会有i=1和i=3的情况,所以共输出2×2=4个*

截图如下:

戈燕皖4v
2019-11-16
知道答主
回答量:6
采纳率:0%
帮助的人:1501
展开全部

首先代码有误应该为:

for(i=0;i++;i++)

for(k=1;k<3;k++)

printf("*");

第一次运行i=0,k=1,输出一个星号,k=2,输出一个星号,然后执行i++,i++后,i=2.

第二次运行i=2,k=1,输出一个星号,k=2,输出一个星号,然后执行i++,i++后,i=4,不满足条件结束循环。

总结:两个i++照样加两次,由于第一个for循环后面没有循环体也没有分号结束,所以会继续执行下一个for循环,而第二个for循环有循环体,有分号,所以当i=0和i=2时会分别执行两次每次输出两个星号,一共4个星号,结果如下。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zdkzylcls
2018-10-25
知道答主
回答量:2
采纳率:0%
帮助的人:1391
展开全部
正确代码:for(i=0;i<4;i++,i++) for(k=1;k<3;k++); printf("*");
结果是:*
解析:由于第一个for语句没有具体的执行语句,故当i=0时,k=1时,执行一次语句 printf(“*”);,程序便会跳出整个循环,故运行结果为一个星号。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黄泉圣体
2012-06-05 · 超过31用户采纳过TA的回答
知道答主
回答量:199
采纳率:0%
帮助的人:95.1万
展开全部
从你给的代码来看,没有前面的,但是只有一个 printf("*") 所以结果是*
更多追问追答
追问
和前面有关系
追答
如果很长的话,就把子程序弄来看看,不长的话,全部弄来看看撒
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
8602glf
2012-06-05
知道答主
回答量:2
采纳率:0%
帮助的人:3178
展开全部
for(i=0;i<4;i++)
for(k=1;k<3;k++)
printf("*");
你想问的是这个程序吧!
结果为:**
**
**
**
如果是你上面所写的程序,那程序本身写的就有问题!
追问
for(i=0;i<4;i++)
上面括号中是两个i++
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式