IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 第二章 条件判断语句(分支语句)& 循环语句(下)| C语言[0基础 入门 保姆级别 通俗易懂 教程] -> 正文阅读

[C++知识库]第二章 条件判断语句(分支语句)& 循环语句(下)| C语言[0基础 入门 保姆级别 通俗易懂 教程]

第二章 条件判断语句(分支语句)& 循环语句(下)| C语言[0基础 入门 保姆级别 通俗易懂 教程]

在这里插入图片描述


作者介绍:

🎓作者:热爱编程不起眼的小人物🐐
🔎作者的Gitee:代码仓库(所有文章的代码都会上传至此,有需要自提哈😽)
📌系列文章推荐:实现Strcpy函数 - 通过函数发现 “程序之美” | 不断优化、优化、再优化~
第二章 条件判断语句(分支语句)& 循环语句(上)
第二章 条件判断语句(分支语句)& 循环语句(中)
📒我和大家一样都是初次踏入这个美妙的“元”宇宙🌏 希望在输出知识的同时,也能与大家共同进步、无限进步🌟



前言

可以说下列我们即将所接触到的语句在学习C语言的过程中有着密不可分、千丝万缕的关系哦~
不仅可以跟好地帮助我们读懂、学习别人优秀地代码,更能更近一步提升自己地代码能力哦~

以下内容干货满满,跟上步伐吧~


一、浅尝条件判断语句(分支语句)和循环语句

让我们一同看看在初步接触C语言中经常运用到的语句吧!

可以说这些语句在学习C语言的过程中有着密不可分、千丝万缕的关系哦~
只有我们扎实好基础,才能更好地建设上层建筑!!!

条件判断(分支语句)

  • if 语句
  • switch 语句

循环语句

  • while 语句
  • for 语句
  • do while 语句

go to 语句


在真正进入了解C语言的分支和循环语句中,我们得先了解了解什么是“语句”

Ⅰ.语句

C语言中语句可分为以下五类:

  1. 表达式语句
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句
而本文介绍的是: 控制语句

C语言中控制语句可分为以下三类:

  1. 条件判断语(分支语句):if语句、switch语句;
  2. 循环执行语句 : do while语句、while语句、for语句;
  3. 转向语句:break语句、goto语句、continue语句、return语句;

二、练习

Ⅰ.计算 n的阶乘

n的阶乘
2! : 1*2
3! : 1*2*3
4! : 1*2*3*4
...
...
n! : 1*2*3*...*(n-1)*n
int main()
{
	int n = 0;
	scanf("%d", &n);
	int sum = 1;

	int i = 0;
	for (i = 1; i <= n; i++)
	{
		sum = sum * i;
	}

	printf("%d\n", sum);

	return 0;
}

在这里插入图片描述


Ⅱ.计算1!+2!+3!+……+10!

思路:在上面计算n的阶乘的基础上,套两成循环:1.最外层循环是控制需要计算到第几个数字的阶乘的和;2.里面再套一层上面写过的计算n!的循环最后每计算一次一个数字的阶乘,加在一起即可。

在这里插入图片描述
咋一看,答案好像不太对呀,这是为什么呢???
那就让我们来调试一下吧【TIPS:调试可是程序员必备的技能哦~~我们得提早习惯于这个操作,才能养成一个好的习惯呀】

在这里插入图片描述
通过调试我们不难发现,对于计算1!和 2!我们答案还是正确的,但当计算3!的时候,便会发现一点猫腻
在这里插入图片描述
所以我们便知道,之所以会出现错误:是因为计算完每一个值的阶乘【即s】的时候,在计算下一个数的阶乘的时候“s”都是带着上一个数的阶乘进入计算的,而不是一个全新的“s”,即俗称:s没有重新初始化进入计算下一个数的阶乘

所以在日后,一定一定要记得重新定义s哦【👉不要再范这种“常见错误哟”】

int main()
{
	int a;
	int n = 1;
	int s = 1;
	int sum = 0;


	for (n = 1;n <= 10; n++)
	{

		s = 1;

		for (a = 1; a <= n; a++)
		{
			s *= a;  
		
		}
		sum = sum + s;
	}

	printf("%d\n", sum);

	return 0;
}

在这里插入图片描述
但我们细想一下,有没有可以优化的空间呢?
那必然是有的!!!
对于每一次计算阶乘,如果我们都像上面一样都重新计算每一个数的阶乘,那代码就太冗余啦

我们不难发现:
1! = 1;
2! = 1 * 2 = 1! * 2;
3! = 1 * 2 * 3 = 2! * 3;
4! = …… = 3! * 4;
...
...
n! = (n-1)! * n;

这不就每计算下一个数的阶乘,便可以用这一次的阶乘乘上下一个数,就可以得到下一个数的阶乘啦~

int main()
{
	int a;
	int n = 1;
	int s = 1;
	int sum = 0;


	//3! = 3 * 2 * 1 == 3 * 2!
	//2! = 2 * 1

	for (n = 1; n <= 10; n++)
	{
		s *= n;
		sum += s;
	}


	printf("%d\n", sum);

	return 0;
}

在这里插入图片描述
这不就更好地 “优化” 代码了吗😄
这波操作你们学会了吗?😍


Ⅲ.算法:二分查找

最重要、最重磅地来喽~~~
它可以检验我们对于 “件判断语句(分支语句)& 循环语句” 是否学习到位的一个重要指标哦~
【欢迎多次学习哦~~】

在这里插入图片描述
通过百度可知:二分查找是一种高效率的查找方法

但我们要注意:仅仅适用于 “有序的序列中” 去*查找
即如我们下面的列子:在一个有排列的整型数组里,查找某一个数字的下标

思路:被查找范围的 中间元素 ===== 查一次 去掉 一半数据(通过 数据下标来进行去除 ==== 首位相加的求平均值 === 再从 平均值 所对应的 数据 在进行 判断 求平均。。。。)
在这里插入图片描述
代码实现:

int main()
{

	int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

	int k = 7; //要查找的数字

	//现在的目标: 在 arr这个有序的数组中 查找 k(7)的值
	//首先 先 确定这个 数组 的 左下标 和 右下标

	int sz = sizeof(arr) / sizeof(arr[0]);  //算 数组 的 元素 个数

	int left = 0;

	int right = sz - 1;


	while (left <= right)  //当 左边 <= 右边 代表====中间还有 元素 可 查找 还可以 继续 求平均 算下去
	{
		int mid = (left + right) / 2;

		if (arr[mid] < k)
		{
			left = mid + 1;
		}

		else if (arr[mid] > k)
		{
			right = mid - 1;
		}

		else  //等于 的情况
		{
			printf("找到了:%d\n", mid);

			break;
		}
	}

	if (left > right)
	{
		printf("找不到了\n");
	}

	return 0;
}

在这里插入图片描述


总结

综上,我们已经了解了C语言中语句的 “条件判断语句(分支语句)& 循环语句” 的初阶啦
但这,仅仅是 C语言入门的开端🍭 ,后续还会带领大家更加的深入相关知识哦~

💫如果有错误?,欢迎指正呀💫
?如果觉得收获满满,可以点点赞👍支持一下哟~?
在这里插入图片描述

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-01 20:25:11  更:2022-02-01 20:25:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:52:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码