acm的c语言题 下面两个printf 的三目运算符怎么理解
解决时间 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
没看懂什么意思?
我要举报
大家都在看
推荐资讯