吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1880|回复: 1
收起左侧

[讨论] 菜鸟楼主学习C语言经典100例之C练习实例1源码

[复制链接]
玖公子 发表于 2019-8-15 20:33
[C] 纯文本查看 复制代码
//C 练习实例1

//C 语言经典100例 C 语言经典100例

//

//题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

//

//程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。



#include <stdio.h>



//答案

void three_number()

{

	int i;//百位上的数字

	int j;//十位上的数字

	int k;//个位上的数字

	for(i=1;i<=4;i++)//从1234四个数字逐个用

	{

		for(j=1;j<=4;j++)

		{

			for(k=1;k<=4;k++)

			{

				if(k==i||k==j||i==j)//i,j,k三个数不能相等

				{

					continue;

				}else

				{

					printf("%d\t",i*100+j*10+k);//打印这个三位数

				}

			}

		}

		printf("\n");

	}

	return;

}



//楼主的函数

void three_number01()

{

	int i;//百位上的数字

	int j;//十位上的数字

	int k;//个位上的数字

	for(i=1;i<=4;i++)//j从1234四个数字逐个用

	{

		for(j=1;j<=4;j++)

		{

			if(j!=i)//j不能等于i

			{

				for(k=1;k<=4;k++)

				{

					if(k==i||k==j)//k不能等于j也不能等于i

					{

						continue;

					}else

					{

						printf("%d\t",i*100+j*10+k);//打印这个三位数

					}

				}

			}

		}

		printf("\n");

	}

	return;

}


楼主拿到这个题目,首先就觉得要三个循环嵌套,然后在第二层循环的时候判断,前面两个数是否相同,
在第三层循环(最内层)判断与前面两个数是否相同!
而答案是直接在第三层循环(最内层)判断三个数是否相同!

各位坛友们有没有更好的答案呢?分享一些好的思路一起讨论讨论?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

yangaiday 发表于 2019-8-15 22:38
hello Word
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 04:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表