
Copy code
#include <stdio.h>
int main() {
for (int i = 1i <= 99i++) {
printf("%d ", i)
}
return 0
}
以上慧悔代码中,使用 for 循环遍历自然数199,循环变量 i 从1开棚丛始,每次递增1,直到i等于99时,for 循环结束。在循环体中,打印 i 的值,使用 printf 函数输出到终端。执行程前和正序将输出自然数199的遍历结果。
因为数组是从0开始算起的所以a[2][3]数起来是
第0行和第1行
第0列,第1列,第2列
i表模兆示的是行,当初始化i=0时表示的是第0行,当i++之后,i=1时表示的是第1行,已经表示完数组的行数了,当i=2时已经数组越界了~所以i〈旦圆租2这里和〈腔伍=1效果是一样的
同理
可解释j
思路1:写出所有24种4个数的排列,存到一个数组里,假如数组是P[24][4];
那么可以
for
(i
=
0
i
<
24
i++)
for
(j
=
0
j
<
24
j++)
for
(k
=
0
k
<握友绝
24
k++)
三层循环,P[i],P[j],P[k]分别是矩阵的三个列
思路2:
利用dfs递归枚举
int
used[3][4]/*这个数组存放三个列中0~3这四个数是否已在这一列中出现过,需要提前清零*/
int
mat[3][4]/*要枚举的矩阵*/
void
dfs(int
col,
int
row)/*col表示现在已经搜索到哪一列(从0开始编号),row表示这一列已经填了几行*/
{
int
i
if
(col
==
2
&&
row
==
4)
{
....../告橡*运行到这里的时候,mat就是枚举段姿到的一个矩阵*/
return
}
if
(row
==
4)
{row
=
0
col++}
for
(i
=
0
i
<
4
i++)
if
(!used[col][i])
{
used[col][i]
=
1
mat[col][row]
=
i
dfs(col,
row
+
1)
used[col][i]
=
0
}
return
}
调用的时候调用dfs(0,0)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)