例如输入2,输出则为:
2345 2354 2435 2453 2534 2543 3245 3254 3425 3452 3524 3542 4235 4253 4325 4352 4523 4532 5234 5243 5324 5342 5423 5432
麻烦分析下过程和算法步骤和画下流程图或者N-S图
供参考:
#include <stdio.h>
void fun(int a)
{
int i, j, k, f, cnt = 0, n = a + 3;
for (i = a; i <= n; i++) {
for (j = a; j <= n; j++) {
for (k = a; k <= n; k++) {
for (f = a; f <= n; f++) {
if (i != j && i != k && i != f && j != k && j != f && k != f) {
cnt++;
printf(cnt % 6 == 0 ? "%d\n" : "%d ", i * 1000 + j * 100 + k * 10 + f);
}
}
}
}
}
if (cnt % 6) printf("\n");
}
int main()
{
int a;
do {
scanf("%d", &a);
} while (a < 1 || a > 6);
fun(a);
return 0;
}
写好的代码如下,望采纳
#include <stdio.h>
void fun(int a)
{
int i, j, k, l;
for (i = a; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
for (l = 0; l <= 9; l++) {
if (i != j && i != k && i != l && j != k && j != l && k != l) {
printf("%d%d%d%d ", i, j, k, l);
}
}
}
}
}
}
int main()
{
int a;
printf("请输入一个小于5的正整数: ");
scanf("%d", &a);
printf("由%d开始的连续4个数字组成的所有无重复数字的4位数为: \n", a);
fun(a);
return 0;
}