瞅C Primer Plus 关于控制换行的疑问
看C Primer Plus 关于控制换行的疑问。for (ct 0 ct sets ct++){roll roll_n_dice (sides, dice)p
看C Primer Plus 关于控制换行的疑问。
for (ct = 0; ct < sets; ct++)
{
roll = roll_n_dice (sides, dice);
printf ("%4d", roll);
if (ct % 15 == 14)//为什么要这样啊?
putchar('\n');
}
if (ct % 15 != 0)
putchar('\n');
两个if 判断是作用是来控制换行,但为什么要用两个啊?
一个判断,然后结束时,再加一个putchar('\n'), 不就行了!
书中多次出现,想问一下,难道有技巧在里面?
[解决办法]第一个, 每隔 15 个换一次行, 没什么说的.
第二个, 如果不要 if 判断, 直接输出一个 '\n', 那么当你的数据个数刚好是 15 的整数倍时, 就会有连续两个空行.
[解决办法]
for (ct = 0; ct < sets; ct++)
{
roll = roll_n_dice (sides, dice);
printf ("%4d", roll);
if (ct % 15 == 14)//为什么要这样啊?
putchar('\n');
}
if (ct % 15 != 0)
putchar('\n');
如果像你说的,退出循环后直接加 putchar('\n');而不加判断的话。
假如sets == 15,当ct==15退出循环,那不是有两个换行了吗?加了判断就不会这样啦