C语言实例练习巩固基础(1)

一、有1234四个数字组成三位数,互不相同还无重复,都有哪些?

**编程思路:**三位数字,分别是个位,十位,百位;
取值(X=1,X<5);
个位不等于十位和百位,同理十位,同理百位(X!=Y&&X!=Z&&Y!=Z);
可构成三重for循环;

#include <stdio.h>
int main()
{
	int X,Y,Z;//定义三个变量;
	printf("\n");//打印空行;
	for(X=1;X<5;X++)
	{
		for(Y=1;Y<5;Y++)
		{
			for(Z=1;Z<5;Z++)
			{
				if(X!=Y&&X!=Z&&Y!=Z)
				{
					printf("\r\n%d,%d,%d\r\n",X,Y,Z);
				}
			}
		}
	}	
}

当然,上面的方法已经能够解决问题了,但在实际的应用当中,要想我们的程序跑的轻松,我们就要想办法去优化它,给它吧不必要的包袱去掉。

#include <stdio.h>
#include <stdint.h>//添加头文件,不然uintX_t会编译错误
/*
Google C++编程规范的P25页有如下叙述: 
按照posix标准,一般整型对应的*_t类型为:
1字节     uint8_t
2字节     uint16_t
4字节     uint32_t
8字节     uint64_t
*/
int main()
{
	uint32_t X;//百位
	uint32_t Y;//十位
	uint32_t Z;//个位
	
	for(X=1;X<5;X++)
	{
		for(Y=1;Y<5;Y++)
		{
			if(Y==X)
			{
				continue;//十位等于百位的话跳过这个十位
			}
			for(Z=1;Z<5;Z++)
			{
				if(Z==Y ||  Z==X)
				{
					continue;个位等于十位,或者等于百位,跳过这个个位
				}
				printf("%d,%d,%d",X,Y,Z);
			}
		}
	}	
}

每天一练,坚持不懈,少侠带你进入C语言的世界修炼!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值