c语言问题求解

if(a[i]){if(first)first=0;elseprintf("");printf("%d",i);}printf("\n");两个printf的输出顺序... if(a[i])
{
if(first) first=0;else printf(" ");printf("%d",i);
}
printf("\n");
两个printf 的输出顺序
展开
 我来答
yanglei5658
推荐于2016-10-17 · TA获得超过4756个赞
知道大有可为答主
回答量:835
采纳率:100%
帮助的人:509万
展开全部

这个问题没有啥难度,

首先,把程序的格式调整一下:

if(a[i])
{  
    if(first) 
        first=0;
    else 
        printf(" ");   //1
    printf("%d",i);    //2
}
printf("\n");          //3

下面,这个就很好分析了,程序中共有3个printf语句:

(1)对于1来说,只有程序走else分支,才会执行

(2)对于2来说,只有a[i]为真,才会执行

(3)对于3来说,程序总会执行


这样就可以根据条件,判断printf的执行顺序。

追问
那是先换行还是先输出i?
追答
到底先输出i还是先换行,根据的是a[i]是不是为0,
如果a[i]不为0的话,那么就先输出i,再换行。
如果a[i]为0的话,那就直接输出换行,不输出i。
修者世界
2015-06-03 · TA获得超过5849个赞
知道大有可为答主
回答量:5984
采纳率:61%
帮助的人:778万
展开全部
如果a[i]不等于0且first等于0,那么输出是:空格,i,换行
如果a[i]不等于0且first不等于0,那么输出是:i,换行
如果a[i]等于0,那么输出时:换行
追问
那是先换行还是先输出i?
追答
换行再最后。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式