if语句有问题

Sha*_*fhs 3 c

在我的书中有一个例子,它要求编写一个程序,使用5列打印数字1到100(每个数字用下一个标签与下一个数字分开).解决方案如下:

#include "stdio.h"
int main()
{
 int i;

 for(i=1; i<=100; i++) {
  printf("%d\t", i);
  if((i%5)==0) printf("\n");
 }
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

但我无法理解if((i%5)== 0)printf("\n"); 声明.你能帮我解释一下吗?

Pab*_*ruz 10

%操作符是模运算符(整数除法的余数).所以每经过五次循环迭代,你的程序就会输出一个\n字符(换行).

价值观将是:

Iteration         i%5 value
      i=1                 1
      i=2                 2
      i=3                 3
      i=4                 4
      i=5                 0
      i=6                 1
      i=7                 2
      i=8                 3
      i=9                 4
     i=10                 0
Run Code Online (Sandbox Code Playgroud)

因此,每五个打印件,一个\n(新行)将打印到标准输出.

希望能帮助到你.