0-9十个数组成一组,每一组不能有重复的数字,0可以在首位,c语言怎么写。
时间: 2023-03-20 16:00:57 浏览: 52
这个问题可以用C语言中的数组和循环来解决。以下是一个示例程序,它使用一个数组来存储0到9的数字,并通过循环来生成所有可能的数字组合,满足每个组合中没有重复数字。
```c
#include <stdio.h>
int main() {
int digits[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int i, j, k, l, m, n, o, p, q, r;
for(i = 0; i < 10; i++) {
for(j = 0; j < 10; j++) {
if(j == i) continue;
for(k = 0; k < 10; k++) {
if(k == i || k == j) continue;
for(l = 0; l < 10; l++) {
if(l == i || l == j || l == k) continue;
for(m = 0; m < 10; m++) {
if(m == i || m == j || m == k || m == l) continue;
for(n = 0; n < 10; n++) {
if(n == i || n == j || n == k || n == l || n == m) continue;
for(o = 0; o < 10; o++) {
if(o == i || o == j || o == k || o == l || o == m || o == n) continue;
for(p = 0; p < 10; p++) {
if(p == i || p == j || p == k || p == l || p == m || p == n || p == o) continue;
for(q = 0; q < 10; q++) {
if(q == i || q == j || q == k || q == l || q == m || q == n || q == o || q == p) continue;
for(r = 0; r < 10; r++) {
if(r == i || r == j || r == k || r == l || r == m || r == n || r == o || r == p || r == q) continue;
printf("%d%d%d%d%d%d%d%d%d%d\n", i, j, k, l, m, n, o, p, q, r);
}
}
}
}
}
}
}
}
}
}
return 0;
}
```
这个程序使用了9层嵌套的循环,每一层循环都遍历数字数组中的所有数字,并检查该数字是否已经在前面的数字中出现过。如果该数字未出现,则将其添加到当前数字组合中,并继续到下一层循环。如果所有数字都已添加到数字组合中,则打印该组合。