永发信息网

acm的c语言题 下面两个printf 的三目运算符怎么理解

答案:2  悬赏:30  手机版
解决时间 2021-04-14 19:16
  • 提问者网友:富士山上尢
  • 2021-04-14 04:48
#include

int main(void)
{
int i, n, m, b, c;

while (scanf("%d%d", &n, &m) != EOF)
{
b = 2;
c = 0;
for (i = 0 ; i < n / m ; i++)
{
printf(c++ ? " %d" : "%d", b + m - 1);
b += m * 2;
}
printf(n % m ? " %d\n" : "\n", b + n % m - 1);
}

return 0;
}
最佳答案
  • 五星知识达人网友:白昼之月
  • 2021-04-14 06:24
printf(c++ ? " %d" : "%d", b + m - 1);

可以分解为:
如果c != 0 printf("%d", b + m -1 );
如果 c == 0 printf("%d", b + m - 1);
然后c++

printf(n % m ? " %d\n" : "\n", b + n % m - 1);

可以分解为:
如果n % m != 0 printf("%d\n", b + n % m - 1);
如果n % m == 0 printf("\n", b + n % m - 1);
全部回答
  • 1楼网友:想偏头吻你
  • 2021-04-14 07:56
没看懂什么意思?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯