题目描述:
有1、2、3、4个数字,能组成多少个不同且无重复数字(比如:112,233)的三位数?并以a,a,a形式输出。
程序分析:
三位数,可分别确定百位,十位,个位中前两位的数值,替换个位。使用3个for循环迭代,并用&&排除重复的数字。
代码实现:
#include<stdio.h>
int main()
{
int i, j, k; //百位,十位,个位
int count = 0; //声明统计值count,并初始化
printf("\n");
for (i = 1; i <= 4; i++)
{
for (j = 1; j <= 4; j++)
{
for (k = 1; k <= 4; k++)
{
if (i != k && i != j && j != k) //排除各个位数相同的结果
{
printf("%d,%d,%d\n", i, j, k);
count++; //统计个数
}
}
}
}
printf("count=%d", count);
return 0;
}
运行结果:
1,2,3
1,2,4
1,3,2
1,3,4
1,4,2
1,4,3
2,1,3
2,1,4
2,3,1
2,3,4
2,4,1
2,4,3
3,1,2
3,1,4
3,2,1
3,2,4
3,4,1
3,4,2
4,1,2
4,1,3
4,2,1
4,2,3
4,3,1
4,3,2
count=24
D:\program\usual\vs\cdy\Debug\cdy.exe (进程 33816)已退出,代码为 0。
按任意键关闭此窗口. . .