给定不超过6的正整数A,考虑从A开始的连续4个数字,请输出所有由这四个数字组成的无重复数字的三位数。
#include
#include
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int a,b;
scanf("%d",&a);
int i,j,k;
b = 0;
i = a;
while (i <= a+3){
j = a;
while(j <= a+3){
k = a;
while(k <= a+3){
if(i!=j){
if(j!=k){
if(i!=k){
b++;
printf("%d%d%d",i,j,k);
if (b == 6){
printf("\n");
b = 0;
}else{
printf(" ");
}
}
}
}
}
k++;
}
j++;
}
i++;
}
return 0;
}
报错:excepted identifier or '('before 'return'
excepted identifier or '('before ')'token
recipe for target'main.o'failed
1.不知道为什么你不包含头文件,include里面没有stdio.h你输入和输出一定会报错。
2.好兄弟你的代码写的把我看得晕头转向的,太复杂了吧。我把我写的答案贴出来你可以参考一下
#include<stdio.h>
int main()
{
int i,j,k,l,num;
int a[4];
scanf("%d",&k);
if(k>6)
{
printf("请输入小于7的数\n");
return 0;
}
for(i=k,j=0;i<k+4;i++)
a[j++]=i;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
if(a[i]!=a[j])
{
for(l=0;l<4;l++)
if(a[l]!=a[i]&&a[l]!=a[j])
{
num=a[i]*100+a[j]*10+a[l];
printf("%d ",num);
}
}
printf("\n");
}
return 0;
}
看看报错信息,你的两个头文件呢,main()里面的一大坨去掉
你这嵌套专家看了都头疼啊!
写得不好。仅供参考!谢谢!
#include<stdio.h>
#define A (i/100)
#define B (i%100/10)
#define C (i%10)
#define T1 (A==a || A==b || A==c || A==d )
#define T2 (B==a || B==b || B==c || B==d )
#define T3 (C==a || C==b || C==c || C==d )
int main(int argc, char *argv[])
{
int a;
do
{
scanf("%d", &a);
if (a < 1 || a > 6)
{
puts("输入不符合题意!\n");
}
}
while (a < 1 || a > 6);
int b = a + 1, c = a + 2, d = a + 3;
printf("由%d,%d,%d,%d组成的不重复三位数是:\n", a, b, c, d);
int min = a * 100 + b * 10 + c;
int max = d * 100 + c * 10 + b;
for (int i = min; i <= max; i++)
{
if (A != B && A != C && B != C && T1 && T2 && T3)
{
printf("%d\n", i);
}
}
return 0;
}