栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言训练题集1】1.有1,2,3,4,四个数字能组成多少个互不相同且无重复数字的三位数,具体数值是多少?

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言训练题集1】1.有1,2,3,4,四个数字能组成多少个互不相同且无重复数字的三位数,具体数值是多少?

一.题目描述
有1,2,3,4,四个数字能组成多少个互不相同且无重复数字的三位数,具体数值是多少?

二.解析
首先,需要使用for循环组成一个个、十、百的三位数,每个位数上的数字循环,使用if判断语句使其限定不出现重复的数字。定义一个count,使其自增计一共有多少组互不相同且无重复数字的三位数。

三.C语言代码

运行代码图

#include 
void main()
{
	int i, j, k, a[100], n = 0;

	for(i=1;i<=4;i++)
		for(j=1;j<=4;j++)
			for(k=1;k<=4;k++)
				if (i != j && i != k && j != k)
				{
					a[n] = i * 100 + j * 10 + k;
					n++;                 //计算有多少个三位数
				}
	printf("能组成%d个无重复数字的三位数n", n);
	printf("分别是");
		for (i = 0; i < n; i++)
			printf("%dn", a[i]);
		printf("n");

}

四.调试结果

调试结果图

能组成24个无重复数字的三位数
分别是123
124
132
134
142
143
213
214
231
234
241
243
312
314
321
324
341
342
412
413
421
423
431
432

四.拓展

1.题目描述

对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。

2.解析

共有5位数,那么就需要5层for循环,而且每一位都只是0和1,那么定义的变量就不能超过2进行五层循环。

3.C语言代码

运行代码

#include 
#include 


int main() 
{
	int n=0;
	int i, j, k, x, y;
	for (i = 0; i < 2; i++)
	{
		for (j = 0; j < 2; j++)
		{
			for (k = 0; k < 2; k++)
			{
				for (x = 0; x < 2; x++)
				{
					for (y = 0; y < 2; y++)
					{
						printf("%d%d%d%d%dn", i, j, k, x, y);
						n++;
					}
				}
			}
		}
	}
	printf("一共有:%d组n", n);
	return 0;
}

4.调试结果

00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111
一共有:32组
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935030.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号