/* stdio.h就是指“standard input&output”本语句指包含标准输入输出头文件 例如“printf”包含在其中 */#define N 6
/* 其中的“#”表示这是一条预处理命令。凡是以“#”塌让渗开头的均为预处理命令。
“define”为宏定义命令,即用6表示置换所有的宏名N,然后再进行编译。
可以简单理解成若程序中遇到N,即为6 */int main()
/* 定义main函数,main函数由系统直接调用,是程序执行的入口 */
{
int i, j
/* 定义整型变量i,j */
for (i = 1i <= Ni++)
{
for (j = ij <N + ij++)
printf("%3d"滑逗, (j - 1) % N + 1)
/* %3d 显示数值宽度为3格,靠右对齐 */
printf("\n")
/* 输出回车 */
}
return 0
}
/* ------------------------
重点介绍循环:
for (i = 1i <= Ni++)
由此可知i循环6次,每次取值分别为1、2、3、4、5、6;
for (j = ij <N + ij++)
由此可知j进入循环的初始值即为每次i的值,循环次数为N,即6次第一次进入循环 for (i = 1i <= Ni++)
i=1:
第 1 次进入循环 for (j = ij <N + ij++)
j=i , 即 j=1,
则 (j - 1) % N + 1 = 1
此时输出 " 1"注意:1前面有2空格,因为数值宽度为3格
第 2 次进入循环 for (j = ij <N + ij++)
此时 j=2,
则 (j - 1) % N + 1 = 2
此时输出 " 2"
第 3 次进入循环 for (j = ij <N + ij++)
此时 j=3,
则 (j - 1) % N + 1 = 3
此时输出 " 3" 第 4 次进入循环 for (j = ij <N + ij++)
此时 j=4,
则 (j - 1) % N + 1 = 4
此时输出 " 4"
第 5 次进入循环 for (j = ij <N + ij++)
此时 j=5,
则 (j - 1) % N + 1 = 5
此时输出 " 5"
第 6 次进入循环 for (j = ij <N + ij++)
此时 j=4,
则 (j - 1) % N + 1 = 6
此团脊时输出 " 6" 执行 printf("\n") 即回车换行 ,此时屏幕上显示“ 1 2 3 4 5 6”第二次进入循环 for (i = 1i <= Ni++)
i=2:
第 1 次进入循环 for (j = ij <N + ij++)
j=i , 即 j=2,
则 (j - 1) % N + 1 = 2
此时输出 " 2"
第 2 次进入循环 for (j = ij <N + ij++)
此时 j=3,
则 (j - 1) % N + 1 = 3
此时输出 " 3"
第 3 次进入循环 for (j = ij <N + ij++)
此时 j=4,
则 (j - 1) % N + 1 = 4
此时输出 " 4" 第 4 次进入循环 for (j = ij <N + ij++)
此时 j=5,
则 (j - 1) % N + 1 = 5
此时输出 " 5"
第 5 次进入循环 for (j = ij <N + ij++)
此时 j=6,
则 (j - 1) % N + 1 = 6
此时输出 " 6"
第 6 次进入循环 for (j = ij <N + ij++)
此时 j=7,
则 (j - 1) % N + 1 = 1
此时输出 " 1" 执行 printf("\n") 即回车换行 ,此时屏幕上显示 1 2 3 4 5 6
2 3 4 5 6 1感觉自己好傻,额,下面就不写啦,最后就是 1 2 3 4 5 6
2 3 4 5 6 1
3 4 5 6 1 2
4 5 6 1 2 3
5 6 1 2 3 4
6 1 2 3 4 5
----------------------------*/ 另外说一下,如果是正交拉丁方阵,6阶是不存在的!相信你知道的!呵呵
在N行N列的数阵中, 数K(1返谈〈=K〈=N)在每行和每列中出现且仅 出现一次,这样的数阵叫N阶拉丁方阵。例如下图就是一个五阶拉丁方阵。 编一程序,从键盘输入N值后,打印出所行渣有不同的N阶拉丁方阵,并统计个数。#include<stdio.h>
#define N 5
void main()
{
int i, j, k, n
for (i = 0i <Ni++)
for (j = 0j <Nj++)
{
n = (i + j) % N
for (k = 0k <Nk++)
{
printf("漏带碰 %d ", (n + k) % N + 1)
}
printf("\n")
}
}参考资料: http://wuli2496.blog.163.com/blog/static/447549992010382450460/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)