翁恺C语言习题集提问

给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。

输入格式:

输入在一行中给出A。

输出格式:

输出满足条件的的3位数,要求从小到大,每行6个整数。整数间以空格分隔,但行末不能有多余空格。

输入样例:
2
输出样例:
234 235 243 245 253 254
324 325 342 345 352 354
423 425 432 435 452 453
523 524 532 534 542 543

#include 

int main()
{
    int a;
    scanf("%d",&a);
    int i,j,k;
    int cnt=0;
    
    i = a;
    whlie(i<=a+3){
        j=a;
        whlie(j<=a+3){
            k=a;
            whlie(k<=a+3){
                if(i!=j){
                    if(i!=k){
                        if(j!=k){
                            cnt++;
                            printf("%d%d%d",i,j,k);
                            if(cnt==6){
                                printf("\n");
                            }else{
                                printf(" ");
                            }
                        }
                    }
                }
                k++;
            }
            j++;
        }
        i++;
    }
    return 0;
}

img

编译总是报错,这个报错应该改哪里?

是while

while你的写错了
写得那么多嵌套眼睛容易看花
下面仅供参考!

img

img

#include <stdio.h>

int main(void)
{
    int a;
    do
    {
        scanf("%d", &a);
    } while (a < 1 || a > 6);    

    for (int i = a; i < a + 4; i++)
    {
        for (int j = a; j < a + 4; j++)
        {
            for (int k = a; k < a + 4; k++)
            {
                if (i != j && i != k && j != k)
                    printf("%d%d%d ", i, j, k);
            }
        }
        puts("");
    }

    return 0;
}


while写成了whlie,if(cnt==6) 条件写错了,修改如下,供参考:

#include <stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    int i,j,k;
    int cnt=0;
    
    i = a;
    while(i<=a+3){  //whlie  修改
        j=a;
        while(j<=a+3){ //whlie  修改
            k=a;
            while(k<=a+3){ //whlie 修改
                if(i!=j){
                    if(i!=k){
                        if(j!=k){
                            cnt++;
                            printf("%d%d%d",i,j,k);
                            if(cnt % 6 == 0){ //if(cnt==6) 修改
                                printf("\n");
                            }else{
                                printf(" ");
                            }
                        }
                    }
                }
                k++;
            }
            j++;
        }
        i++;
    }
    return 0;
}