在我的书中有一个例子,它要求编写一个程序,使用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;
}
但是我无法理解 if((i%5)== 0)printf(“\ n”); 语句。你能帮我解释一下吗?
答案 0 :(得分: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
因此,每五次打印,\n
(新行)将打印到标准输出。
希望它有所帮助。
答案 1 :(得分:1)
if条件检查i
表示的数字是否可以被5整除。
5 % 5 = 0 // remainder
5 / 5 = 1 // quotient
答案 2 :(得分:0)
这意味着如果我除以5而没有剩余的新行字符被打印。
答案 3 :(得分:0)
%
是模运算符,它是除法后的余数。要扩展它并使其更容易阅读,
if( (i%5) == 0 )
{
printf("\n");
}
因此,如果i
除以5的余数为0(如果i
可被5整除),则打印换行符。因此,这将发生在i
= 5,10,15,20等
答案 4 :(得分:0)
i%5
返回模数(除法后的余数)为5.所以
1%5 = 1 2%5 = 2 3%5 = 3 4%5 = 4 5%5 = 0 6%5 = 1 etc...
每过第5次循环,模数为零,并打印换行符。
答案 5 :(得分:0)
0 % 5 = 0
1 % 5 = 1
2 % 5 = 2
3 % 5 = 3
4 % 5 = 4
5 % 5 = 0
6 % 5 = 1
.........
%运算符称为模数,它返回第一个参数的余数除以第二个参数。在循环变量上使用它是一种计算每5次迭代的简单方法。
答案 6 :(得分:0)
您的程序打印数字1到100,当数字可以被5整除时,它会转到一个新行。这样,它会创建五列(在列的顶部有1,2,3,4,5)。
答案 7 :(得分:0)
以下链接显示了有关modulus operator.
的更多信息意识到它有时像上面那样被用作“技巧”,虽然完全有效并且它在那里“无处不在”使用。
通过技巧,我的意思是它用于每5行打印一次。 : - )
答案 8 :(得分:0)
(i%5)每五次为零,'\ n'将从下一行开始打印。 1 '\ T'2' \ T'3 '\ T'4' \ t'5 '\ N' 6 .......