翁恺C语言—(6.0.1)求符合条件的正整数集

266 阅读1分钟

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

要求:从小到大,每行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 <stdio.h>

int main()

{

int A,i,min,mid,max;

printf("输入一个不超过6的正整数:");
scanf("%d",&A);
min=A+1;
mid=A+2;
max=A+3;

for(i=0;i<=3;i++){
	switch(i)
	{
	case 0:
	break;
	case 1:
	min-=1;
	break;
	case 2:
	mid-=1;
	break;
	case 3:
	max-=1; 
	break;
	}
	printf("%d%d%d ",A,min,mid);
	printf("%d%d%d ",A,min,max);
	printf("%d%d%d ",A,mid,min);
	printf("%d%d%d ",A,mid,max);
	printf("%d%d%d ",A,max,min);
	printf("%d%d%d\n",A,max,mid);
	A++;
}
return 0;

}

———————————————————————————————————————————————————————————————————————————————————————————— //老师代码

#include <stdio.h>

int main()

{

int a,i,j,k,cnt=0;
scanf("%d",&a);

i=a;
while(i<=a+3){
	j=a;
	while(j<=a+3){
		k=a;
		while(k<=a+3){
			if(i!=j && i!=k && j!=k)
			{
				cnt++;
				printf("%d%d%d",i,j,k); 
				if(cnt%6==0){                                //6个一行,且末尾不留空格
					printf("\n");
				}else{
					printf(" ");	
				}
			}
			k++;
		}
		j++;
	}
	i++;
	
}
return 0;

}