- /*
- *题目:有1、2、3、4个数字
- *能组成多少个互不相同且无重复数字的三位数?
- *都是多少?
- *
- *解读:
- *用1、2、3、4挑出3个组成一个三位数
- *且组成这个三位数的数字是各不相等的
- *统计出个数 ,并都打印出来
- */
- #include <stdio.h>
- //#define ALL_NUM /* 启用此句,就可以看到所有的三位数 */
- int main()
- {
- int i,j,k;
- int total = 0;
- printf("/n");
- for(i=1;i<5;i++)
- {
- for(j=1;j<5;j++)
- for(k=1;k<5;k++)
- #ifdef ALL_NUM
- {
- printf("%d,",i*100+j*10+k);
- total++;
- }
- #else
- if(i!=j&&j!=k&&k!=i)
- {
- printf("%d,",i*100+j*10+k);
- total++;
- }
- #endif
- printf("/n");
- }
- printf("total = %d",total);
- getch();
- }
此程序并不完全符合题目,应该是先统计出个数,再打印出来他们是哪些
所以考虑用数组
先将他们存入数组,然后在打印出来了
先定义数组:
int num[100];
int m;
然后将
printf("%d,",i*100+j*10+k);
替换为
num[total] = i*100+j*10+k;
在输出个数后,把数组打印出来
for(m=0;m<total;m++)
printf("%d,",num[m]);
printf("%d,",num[m]);