题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
嵌套循环+if判断
#include <stdio.h>
int main()
{
int i,j,k;
printf("\n");
for(i=1; i<5; i++)
{
for(j=1; j<5; j++ )
{
for(k=1; k<5; k++)
{
if(i!=j&&j!=k&&k!=i)
{
printf("%d %d %d\n", i,j,k);
}
}
}
}
return 0;
}
运用循环数组的方式
#include <stdio.h>
int main()
{
int i,j,k;
int list[]={1,2,3,4};
printf("\n");
for(i=0; i<4; i++)
{
for(j=0; j<4; j++ )
{
for(k=0; k<4; k++)
{
if(list[i]!=list[j]&&list[j]!=list[k]&&list[k]!=list[i])
{
printf("%d %d %d\n", list[i],list[j],list[k]);
}
}
}
}
return 0;
}