小言_互联网的博客

《看聊天记录都学不会C语言?太菜了吧》(19)巩固开始,数字1、2、3、4能够组成多少个 3 位数的不同的排列

335人阅读  评论(0)

本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题。此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将会逐步更新。

若有想学习的内容可以在评论区留言,根据大家的要求持续更新。点赞过十万就算化成灰我也更新下一篇。(肯定不到,也会更的。)

有问题也可以在评论区留言,也可以私聊我加我好友共同交流一起进步~

喜欢内容欢迎关注我、评论、点赞、收藏,这对我很重要,谢谢~


由于部分粉丝要求想要学python,就更了这个系列,我就算是生产队的驴、化成灰我C语言和python都一周6篇打底。可以关注我加我好友提你们想学的内容哟~

目录

《看聊天记录都学不会C语言?太菜了吧》(19)巩固开始,数字1、2、3、4能够组成多少个 3 位数的不同的排列——巩固1

《看聊天记录都学不会C语言?太菜了吧》(18)2分钟搞结构体——结构体

看聊天记录都学不会C语言?太菜了吧》(17)5分钟搞懂指针与多重指针——指针与多重指针

《看聊天记录都学不会C语言?太菜了吧》(16)我一直以为校花很漂亮,直到我叫了她一声…——生命空间、命名规则

《看聊天记录都学不会C语言?太菜了吧》(15)你学了一节课的函数我5分钟搞定了,还很熟——自定义函数传参、返回值

《看聊天记录都学不会C语言?太菜了吧》(14)这么神奇?我写了20行代码竟然一行就可以搞定?——自定义函数

《看聊天记录都学不会C语言?太菜了吧》(13)(9*9 乘法表)寻找电脑中的盲盒彩蛋——for 循环与循环嵌套 九九乘法表

《看聊天记录都学不会C语言?太菜了吧》(12)循环有多容易?你看一眼就怀…——循环

《看聊天记录都学不会C语言?太菜了吧》(11)2分钟领悟数组——数组

《看聊天记录都学不会C语言?太菜了吧》(10)程序媛聪明绝顶了——逻辑与运算符

《看聊天记录都学不会C语言?太菜了吧》(9)老公饼真的有老公送?——字符数组

《看聊天记录都学不会C语言?太菜了吧》(8)牛郎和织女竟有一个孩子?——多条件if

《看聊天记录都学不会C语言?太菜了吧(7)下一篇文章告诉你牛郎是谁——if逻辑判断

《看聊天记录都学不会C语言?太菜了吧(6)以前跟我说编程很难的给我站出来——浮点数及变量运算

《看聊天记录都学不会C语言?太菜了吧(5)打了一把游戏我学会了一个编程知识?——变量输出及占位符

《看聊天记录都学不会C语言?太菜了吧(4)原来我早就会编程了——变量

《看聊天记录都学不会C语言?太菜了吧(3)代码都在谈恋爱难道你不知道?——头文件及标点

《看聊天记录都学不会C语言?太菜了吧(2)我说编程很容易你们不服?——Devc使用及HelloWorld

《看聊天记录都学不会C语言?太菜了吧(1)我在大佬群里问基础问题没人理?——学习建议


我的其它教程

教程点击进去将会有目录

《看聊天记录都学不会Python到游戏实战?太菜了吧》(1)加载Python神器!亮剑!

《看聊天记录都学不会C#?太菜了吧》(1)从今天开始我是一个游戏开发者

你去约个会,你零基础的同学就学完C语言知识点过完了

【小白进】大佬们学习为什么简单?小白该如何学习?学历不高如何找工作?副业很好赚?了解后少走弯路


作者简介

作者名:1_bit

简介:CSDN博客专家,2020年博客之星TOP5,蓝桥签约作者。15-16年曾在网上直播,带领一批程序小白走上程序员之路。欢迎各位小白加我咨询我相关信息,迷茫的你会找到答案。

博客地址:https://i1bit.blog.csdn.net


🐰小C:小媛,这节课我们慢慢的开始做习题然后补全知识点了哟。

👸小媛:坐等小 C 老师的教导。

🐰小C:这一节我们来做一道题“数字1、2、3、4能够组成多少个不同的排列”。

👸小媛:死了,我数学不好,看来要绝望了。

🐰小C:不会的,我们题目用逻辑实现,主要是为了巩固,所以就不会涉及太多的数学问题,其实说多了我也不会,所以就用最简单的方式了。

👸小媛:哈哈哈,原来你也不会,你是个数学战 5 渣嘛。

🐰小C:小声点,别人都听见了。

👸小媛:没事,我们菜鸡互啄。

🐰小C:停停停,我们开始上课吧。

👸小媛:嗯,赶紧吧。

🐰小C:我们先分析题目,我先问你1、2、3 三个数,能够怎么组成哪些不重复的数?你试着列举一下。

👸小媛:123、321、213、231、132?

🐰小C:是不是每个位置,这三个数都需要显示一遍?

👸小媛:是的。

🐰小C:那我问你,如何显示 1 到 3 这 3 个数?

👸小媛:你是说要显示 1、2、3 这三个数吗?

🐰小C:是的,依次显示出来,你用 C 语言怎么做呢?

👸小媛:使用 for 循环直接遍历出来就可以了,就像下面这样。

#include<stdio.h>
void main()
{
   
	int i;
	for(i=1;i<4;i++)
	{
   
		printf("%d\n",i);
	}
}

🐰小C:不错,那我为,我现在需要列出一个百位数,是不是有 3 个位置,这一次循环可以当做百位的数字吗?

👸小媛:你的意思是,例如有意给百位数,那么这一次循环就是 1**、2**、3** 这样列出了百位的数字?

🐰小C:是的,你觉得可以吗?

👸小媛:可以呀,我懂了,你的意思是我再加一个循环遍历出百位和个位就可以了吗?

🐰小C:是的,你已经有思路了吗?

👸小媛:还没有,感觉脑子嗡嗡的,一脑懵逼。

🐰小C:哈哈哈,那我们继续慢慢往下讲。我现在问你,你还记得循环嵌套吗?

👸小媛:记得,你想说啥?

🐰小C:说一下循环嵌套是怎么回事。

👸小媛:循环嵌套就是一个循环在另外一个循环里面,外面循环循环一次,内部循环执行到的时候就会等待内部的循环结束后才会执行完本次循环。

🐰小C:你写一个代码出来看看。

👸小媛:嗯,那我随便写一个就是下面这个。

#include<stdio.h>
void main()
{
   
	int i,j;
	for(i=1;i<4;i++){
   
		printf("%d\n",i);
		
		for(j=1;j<4;j++){
   
			printf("%d\n",j);
		}
		printf("\n");
	}
}

👸小媛:结果是这样。

🐰小C:那你有没有发现,外层循环是 1 的时候,内部循环就是又会从头开始,那么又会显示 1、2、3,即使外层循环是 2 了,内部循环由于在 for(j=1;j<4;j++) 这局代码中,j 又被赋值为 1,所以又从头开始循环 1、2、3 了。

👸小媛:是呀,然后呢?…等一下,我懂了,你意思说这就是可以得出百位了,这个时候如果是第一次循环百位是 1,那么十位就可以得出了 1、2、3,例如 11*、12*、13这样,然后第二次就是 21、22*、23*。

🐰小C:这一步懂了吗?那第个位呢?

👸小媛:我明白了,第三位继续价格循环进去?就是这样?

#include<stdio.h>
void main()
{
   
	int i,j,k;
	for(i=1;i<4;i++){
   
		for(j=1;j<4;j++){
   
			for(k=1;k<4;k++){
   
				
			}
		}
	}
}

🐰小C:是的,由于我们的题目是 1、2、3、4 这几个数,所以你得把 <4 改成 <5。

👸小媛:改了。

#include<stdio.h>
void main()
{
   
	int i,j,k;
	for(i=1;i<5;i++){
   
		for(j=1;j<5;j++){
   
			for(k=1;k<5;k++){
   
				
			}
		}
	}
}

🐰小C:这个时候我们还需要判断每个位置的数不一样,你忘记了吗,我们是数字 1、2、3、4 这4个数组的组合,每个数只能在位置上出现一次,该怎么做呢?

👸小媛:不懂啊,我又懵了。

🐰小C:很简单呀,最里面的循环此时不是已经知道了当前外层循环所有变量的值了吗?只要判断这些数字是不是互不相等不就好了吗?

👸小媛:好像是这么回事,怎么写呢?

🐰小C:你看我下面的代码。

#include<stdio.h>
void main()
{
   
	int i,j,k;
	for(i=1;i<5;i++){
   
		for(j=1;j<5;j++){
   
			for(k=1;k<5;k++){
   
				if(i!=j&&j!=k&&i!=k){
   
					printf("%d%d%d \n",i,j,k)}
			}
		}
	}
}

👸小媛:唔,就是每个变量都去判断相互等不等与,等于就说明有重复就不理,然后都不等说明就是对的,这个时候输出显示就可以了。那怎么保证结果不重复呢?

🐰小C:你傻嘛,我的是依次增长的变量,肯定不重复呀。

👸小媛:ヾ(≧O≦)〃嗷~哈哈哈,懂了,因为所有位置的数都在依次网上增长,就等于从1开始遍历到10,肯定没有重复。

🐰小C:是这个意思,如果你想计数也很简单,直接使用个变量进行记录就可以了。

#include<stdio.h>
void main()
{
   
	int i,j,k,c=0;
	for(i=1;i<5;i++){
   
		for(j=1;j<5;j++){
   
			for(k=1;k<5;k++){
   
				if(i!=j&&j!=k&&i!=k){
   
					printf("%d%d%d \n",i,j,k);
					c++;
				}
			}
		}
	}
	printf("\n共计:%d\n",c);
}

🐰小C:结果在下面。

👸小媛:明白了明白了,只有显示出来才是正确的,所以才计数。我先去消化消化,我人块没了。


转载:https://blog.csdn.net/A757291228/article/details/115509229
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场