if(a[i])
{
if(first) first=0;else printf(" ");printf("%d",i);
}
printf("\n");
两个printf 的输出顺序
这个问题没有啥难度,
首先,把程序的格式调整一下:
if(a[i])下面,这个就很好分析了,程序中共有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。
那是先换行还是先输出i?
追答换行再最后。