C if语句的问题
在我的书中有一个例子,它被要求编写一个程序,使用5列打印数字1到100(每个数字之间用一个标签隔开)。 解决办法如下:C if语句的问题,c,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; } #包括“stdio.h” int main() { int i; 对于(i=1;i,%运算符是模运算符(整数
#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;
}
#包括“stdio.h”
int main()
{
int i;
对于(i=1;i,%
运算符是模运算符(整数除法的余数)。因此,每五次循环迭代,程序将输出一个\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
(新行)
希望有帮助。这意味着如果我被5除,没有余数,则会打印新行字符。%
是模运算器,它是除法后的余数。要扩展它并使其更易于阅读
if( (i%5) == 0 )
{
printf("\n");
}
0 % 5 = 0
1 % 5 = 1
2 % 5 = 2
3 % 5 = 3
4 % 5 = 4
5 % 5 = 0
6 % 5 = 1
.........
因此,如果i
除以5的余数为0(如果i
可被5整除),则打印一条换行。因此,这将发生在i
=5、10、15、20等处。如果条件检查i
表示的数字是否可被5整除
5 % 5 = 0 // remainder
5 / 5 = 1 // quotient
i%5
返回5的模(除法后的余数)。所以
1%5 = 1
2%5 = 2
3%5 = 3
4%5 = 4
5%5 = 0
6%5 = 1
等
每五次通过循环,模为零,并打印换行符
0 % 5 = 0
1 % 5 = 1
2 % 5 = 2
3 % 5 = 3
4 % 5 = 4
5 % 5 = 0
6 % 5 = 1
.........
%运算符称为模,它返回第一个参数的剩余部分除以第二个参数。在循环变量上使用它是一种简单的方法,可以每5次迭代计数一次。您的程序打印数字1到100,当数字可被5整除时,它将转到新行。这样,它将创建五列(列顶部有1、2、3、4、5)。这里有一个链接,显示有关
意识到它有时像上面那样被用作一种“把戏”,尽管它完全有效,并且像那样被“到处”使用
我的意思是,它每5行打印一次。:-(I%5)每5行将为零,“\n”将从下一行开始打印。
1'\t'2'\t'3'\t'4'\t'5'\n'
6.…请注意,书中给出的程序有点作弊。它不是用制表符将每个数字与下一个数字分开,而是在每个数字后面加一个制表符。因此,每行末尾都有一个不必要的制表符。您可以试着将其作为练习来解决。printf(“%d%c”,i,(i%5)?“\t”:“\n”)
有趣多了。天哪,在我输入答案的时间里,有6个新答案出现了。换句话说,x%y==0
这句话在x
可以被y
平均整除时是正确的(也就是说,x
是y
的倍数)。将%y==0
与计数器一起使用的技术是使循环中每隔y
次发生某件事的一种简单方法。