经典C程序100例(1)

网上找到了一本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; 
}

标签: , ,

留下回复