问这个c语言问??

来源:百度知道 编辑:UC知道 时间:2024/06/07 17:59:59
int main()
{
int b, l, c, i;
int a[] = {1, 153, 370, 371, 407};

while (scanf("%d%d", &b, &l) != EOF)
{
c = 0;
for (i = 0 ; i < 5 ; i++)
{
if (a[i] >= b && a[i] <= l)
printf(c++ ? " %d" : "%d",a[i]);
}
printf(c ? "\n" : "no\n");
}
return 0;
}
代码中 能把printf(c++ ? " %d" : "%d",a[i])讲详细点;

printf(c++ ? " %d" : "%d",a[i]) =printf(" %d" ,a[i])
即:如果c 不为 0选择冒号前的" %d",等于0选择冒号后的" %d",
这个问号表达式没有意义。因为:前后一样。

printf(c++ ? " %d" : "%d",a[i]);
这句语法有误。改为 printf(" %d :",a[i]);