\n 是表示输出换行,即下次显示的东西显示在下一行。
循环嵌套你可以认为是大圈套小圈,里边小圈都绕完了算外边大圈的一圈。
在这个例子里,大圈包括一个小圈和一个换行语句,小圈开始绕的时候把j变成1,i 保持大圈的不变,所以第一次大圈会输出 3 4 和一个换行,第二次大圈 i 变成了1,j 又从1开始变,所以会输出 2 和 3 。
\n是换行的意思。你编出来的没有空格分开是因为printf("%d ", i+j)中%d的后面少了一个空格
这个过程其实很简单,i = 2的时候,先处理内部的循环,打印出2+1,2+2的值
然后再处理外部循环也就是i变为1,打印出1+1, 1+2的值
printf("%d ",i+j)%d后面要加个空格。或者前面加一个空格也行的。。
printf("%d ",i+j)%d后面要加个空格,没什么好分析的