代码如下:
#include<stdio.h>
void main(void)
{
`int A,i=1,G=0;`
int s1 = 0, s2 = 0, s3 = 0;//s1百分位,s2十分位,s3个位,S最后得数
printf("请输入小于6的数");
scanf_s("%d", &A);
for (s1 = A; s1 <= A + 3; s1++)
{
for (s2 = A; s2 <= A + 3; s2++)
{
if (s1 != s2)
{
for (s3 = A; s3 <= A + 3; s3++)
{
if (s3 != s2 && s3 != s1)
{
printf("%d%d%d", s1,s2,s3);
G++;
if (G%6==0)
{
printf("\n");
}
else
{
printf(" ");
}
}
}
}
}
}
return 0;
}
问题分析
1.一开始解题思路一直卡在输出的数是一个单独的数,没有深入想下分开各个位数表达。
2.输出顺序应先百位,十位,个位,一开始没有注意到这个细节,必须先百位,因为它是递增的且从小排到大。
3.计数的应用。
4.代码中的G%6==0这一代码容易忽视==这一符号的使用。