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 的输出顺序 展开
{
if(first) first=0;else printf(" ");printf("%d",i);
}
printf("\n");
两个printf 的输出顺序 展开
2个回答
展开全部
这个问题没有啥难度,
首先,把程序的格式调整一下:
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。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询