跟我从零开始学C++(C++代码基础)3

引言

小伙伴们大家好呀,又到了每日学习的时候了,今天小杨同学给大家带来了新的知识点哟,大家准备好了么,昨天学习的任务有没有消化好呢,昨天的课后练习怎么样了呢,有没有费了一番功夫弄出来呢。没有把基础打好的小伙伴们千万不要着急呀,毕竟根基不牢是要出大事情的,小伙伴们加油呀,跟着小杨一起接着咬咬牙,坚持下去奥~好了废话不多说,今天学习的内容有昨天少了的循环结构,还有新内容那就是数组。今天又是元气满满的一天呢!冲呀冲呀!!!

循环结构

上集我们讲到,任何任何程序都是由三种基本结构构成的,顺序,分支,循环。 我们已经讲完分支了,接下来我们说一说循环结构

  • for循环
    在这里插入图片描述
    我们试着用for循环来写一个九九乘法口诀表
#include <iostream>
using namespace std;

/*
九九乘法口诀:
实现三角形乘法口诀,并实现行列控制,控制几行输出,对输入有提示。

*/
int main()
{
	whiletrue;//这用了while的死循环结构让这个程序一直运行,我们可以利用破坏循环的break来跳出循环;
	{
			cout << "九九乘法口诀:" << endl;
			cout << "请输入行数:" << endl;

			int rows;//定义初始行数
			cin >> rows;

			for (int i = 1; i <= rows; i++)
			{
				for (int j = 1; j <= i; j++)
				{
					cout << i << "*" << j << "=" << i * j << "\t ";
				}
				cout << endl;//眼镜尖的小伙伴们,为什么在这里放换行,为什么不在上个循环里放
			}
	}

	
}
  • while循环

在这里插入图片描述

  • do while循环
    在这里插入图片描述

关于while循环和do,while循环的较为简单且不常用就不做代码分析了,大家在这了解一下即可,有需要的小伙伴可私信给我,我会给大家解答的

for、while、do while语句比较:

  • for比较适合循环次数固定的场景。
  • while 语句适合循环次数不固定,而循环结束条件比较明确的场景。
  • do while,语句适合循环次数不固定,需要先执行循环体再判断循环条件的场景。

跳转语句

  • break,结束整个循环,执行循环语句组下面的语句。
  • continue,结束本轮循环,进入下一轮循环。

数组

  • 数组是由相同类型的一组变量组成的一个有序集合。
  • 数组中个第一个变量称为一个元素,所有元素共用一个变量,就是数组的名字。
  • 数组中每个元素都有一个序号,称为下标。
  • 数组定义后,长度不可改变。
#include <iostream>

using namespace std;

int main()
{
	//  定义整型数组a,长度为10。定义数组时长度只能是常量。
	//	数组是标识符,必须遵守标识符命名规则。
	int a[10];  //	数组类型指数组元素的类型,可以是任意类型。

	/*
		定义数组时,数组长度不能使用变量
		int m = 10;
		int c1[m];
	*/

	a[0] = 100;	//	数组下标从0开始
	a[1] = 200;
	a[4] = 500;

	for (int i = 0; i < 10; i++)
	{
		cout << a[i] << ", "; // 通过 数组名[下标] 使用数组中的元素
	}
	cout << endl;

	return 0;
}
  • 数组在内存中是连续存储的,拥有非常高的存取效率。
  • 数组可以在定义时使用{}初始化。
#include <iostream>

using namespace std;

int main()
{

	//	定义五个元素的整型数组并初始化
	int a[5] = { 1, 2, 3, 4, 5 };
	for (int i = 0; i < 5; i++)
	{
		cout << a[i] << ", ";
	}
	cout << endl;

	//	定义数组时不给下标值,根据元素的个数决定数组长度。
	int a1[] = { 1, 2, 3, 4, 5 };
	for (int i = 0; i < 5; i++)
	{
		cout << a1[i] << ", ";
	}
	cout << endl;

	//	定义5个元素的数组,初始化前三个元素,后面两个元素默认值为0。
	int a2[5] = { 1, 2, 3 };
	for (int i = 0; i < 5; i++)
	{
		cout << a2[i] << ", ";
	}
	cout << endl;

	//	定义5个元素的数组,初始化所有元素为0。
	int a3[5] = { };
	for (int i = 0; i < 5; i++)
	{
		cout << a3[i] << ", ";
	}
	cout << endl;

	return 0;
}
  • 二维数组
    • 二维数就是具有两个下标的数组,确定一个元素需要两个下标值,第一个下标称为行下标,第二个下标称为列下标。
    • 二维数就是具有两个下标的数组,确定一个元素需要两个下标值,第一个下标称为行下标,第二个下标称为列下标。
#include <iostream>

using namespace std;

int main()
{
	/*
		定义二维数组a。
		二维数组有有两个下标,第一个称为行下标,第二个称为列下标。
		二维数组在内存中是连续存放的。
	*/
	int a[3][4];

	for (int i = 0; i < 3; i++) // i对应行下标
	{
		for (int j = 0; j < 4; j++) // j对应列下标
		{
			a[i][j] = i * 10 + j;
		}
	}

	for (int i = 0; i < 3; i++) // i对应行下标
	{
		for (int j = 0; j < 4; j++) // j对应列下标
		{
			cout << a[i][j] << '\t';
		}
		cout << endl;
	}


	return 0;
}

小练习

学了二维数组后,我就想起来我在线性代数里学的矩阵,是不是很像呢,都是行列,我们来用二维数组来实现以下矩阵相加

问题描述: 只有方阵才可以相加(方阵就是行数和列数相同的矩阵)矩阵的每个位置各自相加得到的和还放在该位置。就是坐标一致的元素相加,得到和矩阵;

讲解: 代码如下

#include <iostream>

using namespace std;

int main()
{
	
	//	矩阵相加
	int a1[2][3] = { 1, 2, 3, 4, 5, 6 };
	int a2[2][3] = { 7, 8, 9, 10, 11, 12 };
	int a3[2][3];
	//	计算a1,a2的和并存储在a3中
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			a3[i][j] = a1[i][j] + a2[i][j];
		}
	}
	//	输出a3
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			cout << a3[i][j] << '\t';
		}
		cout << endl;
	}

}

作业讲解

我来讲一下昨天留的小作业,小伙伴们弄出来了么,大家都用了什么分支呢,我这里采用了老师讲解的swtich的方法我认为这种办法较 if 和else if的判断更好一些,当然小伙伴们如果选用if的那种也很好,我之前也是那么写的,不过大家也可以看看这个,我觉得真心不错。

**题目:**根据收入计算应纳税款,要求如下:
月收入小于等于5000元,不纳税。
月收入大于5000元,对于超过5000元的部分纳税5%;
月收入大于10000元,对于超过10000元的部分纳税10%;
月收入大于20000元,对于超过20000元的部分纳税15%;
月收入大于30000元,对于超过30000元的部分纳税20%;

代码如下:

#include <iostream>

using namespace std;

int main()
{
	/*
		根据收入计算应纳税款,要求如下:
		月收入小于等于5000元,不纳税。
		月收入大于5000元,对于超过5000元的部分纳税5%;
		月收入大于10000元,对于超过10000元的部分纳税10%;
		月收入大于20000元,对于超过20000元的部分纳税15%;
		月收入大于30000元,对于超过30000元的部分纳税20%;
	*/
	int s = 10001, n;
	//	cin >> s;
	
	n = s / 5000;

	switch (n)
	{
	case 0:
		cout << "不需要纳税" << endl;
		break;
	case 1:
		cout << "应纳税:" << (s - 5000) * 0.05 << endl;
		break;
	case 2:
	case 3:
		cout << "应纳税:" << 5000 * 0.05 + (s - 10000) * 0.1 << endl;
		break;
	case 4:
	case 5:
		cout << "应纳税:" << 5000 * 0.05 + 10000 * 0.1 + (s - 20000) * 0.15 << endl;
		break;
	default:
		cout << "应纳税:" << 5000 * 0.05 + 10000 * 0.1 + 10000 * 0.15 + (s - 30000) * 0.2 << endl;
		break;
	}

	return 0;
}

结语

小伙伴们,今天又学到不少东西吧,小杨学到的东西都交给大家了,大家给小杨点点赞,点点关注;如果你也是从零基础开始学习C++,那跟紧小杨一定没错,跟着小杨同学从零基础学到项目实战,最后达到一般水平,足够大家转行找工作,或者在校的学习比赛了。小伙伴们加油呀,上升之路已经开始了,就不要停下来,大家坚持住,也要把之前的基础打好,一定要迎难而上,冲冲冲!!!!

  • 33
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值