我写了一个,但答案不对,希望指出一下问题

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

输入格式:
输入在一行中给出A。

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

#include<stdio.h>
int main()
{
int a,b,c,d,e;

scanf("%d",&a);
for(b=a;b<=a+3;b++)
{e=0;
    for(c=a;c<=a+3;c++)
        {
            for(d=a;d<=a+3;d++)
            {
                if(b!=c&&b!=d&&c!=d)
                {
                    printf("%d%d%d",b,c,d);
                    e++;
                    if(e==6)
                    printf(" \n");
                    else
                    printf(" ");
                }
            }
        }
}
return 0;

}

这段代码一直显示格式错误 不知道哪里错了
求指出

你好同学,你的代码我看了一下,要求的是行末不能有多余空格:
所以把那个printf(" \n");改成printf("\n");就行啦

#include<stdio.h>
int main()
{
int a,b,c,d,e;
scanf("%d",&a);
for(b=a;b<=a+3;b++)
{e=0;
    for(c=a;c<=a+3;c++)
        {
            for(d=a;d<=a+3;d++)
            {
                if(b!=c&&b!=d&&c!=d)
                {
                    printf("%d%d%d",b,c,d);
                    e++;
                    if(e==6)
                    printf("\n");//这里错了,行末不能有多余空格 
                    else
                    printf(" ");
                }
            }
        }
}
return 0;
}

有帮助还请给个采纳支持下答主哦

int a,b,c,d,e;改成int a,b,c,d,e = 0;
第3行的e = 0;去掉
第12行的if(e==6)改成if(e%6==0)
第13行的printf(" \n");把\n前面的空格删掉

#include<stdio.h>
int main()
{
    int a,b,c,d,e = 0;

    scanf("%d",&a);
    for(b=a;b<=a+3;b++)
    {
    for(c=a;c<=a+3;c++)
    {
        for(d=a;d<=a+3;d++)
        {
            if(b!=c&&b!=d&&c!=d)
            {
                printf("%d%d%d",b,c,d);
                e++;
                if(e%6==0)
                    printf("\n");
                else
                    printf(" ");
            }
        }
    }
    }
    return 0;
}

参考一下

你这个是没有问题的呢,我把代码拷贝过去运行也是正常。只不过我用的是vs2017,然后不能使用scanf,需要改成scanf_s。
也许你的也是这个问题,如果不是,再回复在解决!
还有printf(" \n"); 要把‘\n’前面的空格删除,这是细节问题呢!

img

如果问题解决,点个采纳吧!