网上找到了一本CHM格式的电子书,叫做《经典C程序100例》,这100个例程,是不是经典不必讨论,如果都过一遍的话,对学习C语言会有不小的帮助,就从第一个来吧。
题目1:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
分析:仔细想了一下,题面中“互不相同且无重复数字”尽管用到了“且”,其实是虚晃一枪,互不相同的话肯定就没有重复数字,这本是一个条件。因为是三位数,所以要用到三个循环的嵌套,最里层循环中作出数字是否符合条件的判断,如果符合条件,显示出来并记录数量,数量会在循环中累加,最后在循环之外显示出来符合条件数字的数量,程序结束。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | /* 用1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?各是多少? */ #include <stdio.h> int main(void) { unsigned char x; //百位数字 unsigned char y; //十位数字 unsigned char z; //个位数字 unsigned short sum; //组成的三位数 unsigned int number=0; //符合条件数字的数量 printf("符合条件的三位数包括:"); for(x=1;x<=4;x++) //循环百位 { for(y=1;y<=4;y++) //循环十位 { for(z=1;z<=4;z++) //循环个位 { if(x!=y&&y!=z&&z!=x) //判断条件为三个数字互不相同 { sum=100*x+10*y+z; //组成这个数字 printf(" %d ",sum); //打印这个数字 number++; //计算数量 } } } } printf("\n符合条件的三位数的数量是 %d 个",number); //打印三位数的数量 return 0; } |
