由用户输入一个小于5的正整数a,编写一个函数fun,输出由a开始的连续4个数字组成的所有无重复数字的4位数,要求一行6个数,数字间用空格分开,要求在主函数中完成输入和函数调用。

例如输入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;
}