题目:有1.2.3.4四个数字,它们能组成多少个互不相同且无重复数字的三位数?都是多少?
分析:
1.设置三个变量 i、j、k分别表示所求三位数的百、十、个位
2.设置计数器count,每输出一个复合条件的数时count++
3.依次改变个十百位的数来看是否符合条件
由上述第三点可以确定应该用循环语句来实现,且应该是一个三重嵌套循环,最里层到最外层的循环分别控制个十百位上的数,当满足条件 (i!=j && i!=k && j!=k)时输出该数。
综上,得到以下完整代码:
#include <stdio.h>
int main()
{
int i,j,k,count;
for(i=1;i<5;i++){ //控制百位
for(j=1;j<5;j++){ //控制十位
for(k=1;k<5;k++){ //控制个位
if(i!=j && i!=k && j!=k){ //当个、十、百位上的数互不相同时输出
printf("%d%d%d\n",i,j,k);
count++;
}
}
}
}
printf("一共有%d个满足条件的数。\n",count);
return 0;
}