首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

瞅C Primer Plus 关于控制换行的疑问

2013-04-20 
看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退出循环,那不是有两个换行了吗?加了判断就不会这样啦

热点排行