C语言行列循环代码中取模运算符(%)的用法咨询
代码中取模运算符(%)的作用解析
输入输出示例
Input : 6 1 2 3 4 5 6 2 3 4 5 6 7 3 4 5 6 7 8 4 5 6 7 8 9 5 6 7 8 9 0 6 7 8 9 0 1
对应C语言代码
#include <stdio.h> int main(){ int i, j, n; printf("Input n: "); scanf("%d", &n); for(i=0; i<n; i++) { for (j=1; j<=n; j++) { printf ("%d ", (i+j)%10); } printf("\n"); } return 0; }
取模运算符(%)的具体作用
这段代码里的 (i+j)%10 核心作用是让计算结果始终落在0-9的范围内,实现数字超过9后从0循环的效果:
- 当
i+j的值小于10时,取模结果就是i+j本身,比如第一行i=0,j从1到6,0+1=1,1%10=1;0+6=6,6%10=6,对应输出1-6。 - 当
i+j的值等于10时,10除以10的余数是0,比如第五行i=4,j=6,4+6=10,取模后得到0,对应该行最后一个数字0。 - 当
i+j的值大于10时,取模结果是i+j减去10的整数倍后的余数,比如第六行i=5,j=6,5+6=11,11%10=1,对应该行最后一个数字1。
本质上就是提取i+j的个位数字,让数字到9之后不用继续递增,直接跳回0循环输出。
内容的提问来源于stack exchange,提问作者tubatulogy
相关产品推荐
相关产品推荐

