0到底是不是5的倍数?n = 0; if(n % 0 == 5) printf("\n");

在《C程序设计》第五版的第五章例5.6中有个困惑点。

题目:
输出一下 4 * 5 的矩阵。

1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20

代码如下:

#include<stdio.h>
int main()
{
  int i, j, **n = 0**;
  for(i = 1; i <= 4; i ++)
    for(j = 1; j <= 5; j ++, n ++)
      {if(n % 5 == 0) printf("\n");
        printf("%d\t", i * j);
      }
  printf("\n");
  return 0;
}

n的初始值为0,在内for循环第一遍的时候应该还是0吧?如果是的话那不应该进入if语句中输出一个“回车”吗?是我哪里理解出问题了吗?

还是说0 % 5 != 0?

谢谢~

如果按n%5==0的判断,0是5的倍数
你意思是代码没有输出换行符吗?
测试了一下,开头输出换行了啊

img


你不是要这个效果么?

if(0 % 5 == 0)是满足条件的。会执行if后面的语句。
你可以在if后面语句中输出n的值看看。

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632