:给定不超过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’前面的空格删除,这是细节问题呢!
如果问题解决,点个采纳吧!