首页 > 编程语言 >跟我从零开始学C++(C++代码基础)3

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

时间:2024-06-17 19:30:37浏览次数:16  
标签:下标 cout int 代码 C++ ++ 从零开始 数组 循环

引言

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

循环结构

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

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

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

*/
int main()
{
	while(true);//这用了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++,那跟紧小杨一定没错,跟着小杨同学从零基础学到项目实战,最后达到一般水平,足够大家转行找工作,或者在校的学习比赛了。小伙伴们加油呀,上升之路已经开始了,就不要停下来,大家坚持住,也要把之前的基础打好,一定要迎难而上,冲冲冲!!!!

标签:下标,cout,int,代码,C++,++,从零开始,数组,循环
From: https://blog.csdn.net/m0_58077690/article/details/139751174

相关文章

  • 代码题答案
    importjava.util.Random;publicclassMain{publicstaticvoidcharCode(){StringBuildersb=newStringBuilder();Randomrandom=newRandom();for(inti=0;i<5;i++){intrandomCharType=random.nextlnt(2);/随机选择大小写if(randomCharType==0){/......
  • 一行Python代码可以做什么,超出你想象
    哈喽,大家好,我是木头左!揭秘编程语言的灵活性在编程的世界里,简洁就是力量。Python以其优雅和简洁而著称,让开发者能够用更少的代码做更多的事。但这并不意味着功能上的妥协——Python的强大之处在于它允许在一行代码中执行多个语句,这不仅能提高的编码效率,还能使代码更加紧凑和易......
  • 魂断代码读书笔记1
    《梦断代码》的第一章“死定了”集中描绘了Chandler项目在2003年7月的初期阶段面临的种种混乱和困难。作为一个开源项目,Chandler并没有商业项目那样的资金支持和明确的管理体系,因此在技术和管理上遇到了很多问题。技术问题在技术层面,Chandler项目遇到了许多挑战。首先是技术选型......
  • 数据结构代码常用模板
    目录线性表顺序表单链表循环单链表栈和队列顺序栈链栈队列树与二叉树二叉树的遍历并查集哈夫曼树串KMP图深度优先搜索与广度优先搜索拓扑排序克洛斯卡尔最小生成树弗洛伊德最短路排序快速排序直接插入排序希尔排序简单选择排序冒泡排序线性表顺序表#include<iostream>#includ......
  • C++类虚函数实现多态求长方体和圆柱体的体积
    #include<iostream>usingnamespacestd;#definePI3.14classContainer{ public: Container(doubleh){ height=h;//简单的方法初始化h } virtualdoublegetvolumn()=0;//纯虚函数 protected: doubleheight;};classCube:publicC......
  • 代码随想录第10天 | 栈与队列part01
    题目:232.用栈实现队列思路:1.使用双栈,一个作为输入,一个作为输出代码:classMyQueue{private:stack<int>A,B;public:MyQueue(){}voidpush(intx){A.push(x);}intpop(){//删除A栈底元素并返回元素intresult=this->p......
  • 构建LangChain应用程序的示例代码:35、如何使用假设性文档嵌入(HyDE)技术来改善文档索引
    使用假设性文档嵌入(HyDE)改善文档索引摘要本文介绍了如何使用假设性文档嵌入(HypotheticalDocumentEmbeddings,简称HyDE),这是根据一篇论文中描述的技术。HyDE是一种嵌入技术,它接收查询,生成一个假设性的答案,然后嵌入该生成的文档,并将其作为最终示例使用。代码及注释froml......
  • 05梦断代码阅读笔记
    《梦断代码5》前台与人对话,后台与比特对话,言简意赅。创建还是复用?每个软件迟早都会到达这个岔路口。的确,我们不也是这样,复用固然便利简单,但能否完全适合自己现在的编程环境仍是一个未知数。而创建虽然费时费力但无疑是针对自己的状况,两者各有优劣。向往未来那种程序可由复用......
  • 2024华为OD机试真题-出租车计费 、靠谱的车-(C++/Python)-C卷D卷-100分
    2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述:程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。比如:23再多......
  • 2024华为OD机试真题-API集群负载统计-(C++/Python)-C卷D卷-100分
     2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++)题目描述某个产品的RESTfulAPI集合部署在服务器集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。RESTfulAPI是......