引言
小伙伴们大家好呀,又到了每日学习的时候了,今天小杨同学给大家带来了新的知识点哟,大家准备好了么,昨天学习的任务有没有消化好呢,昨天的课后练习怎么样了呢,有没有费了一番功夫弄出来呢。没有把基础打好的小伙伴们千万不要着急呀,毕竟根基不牢是要出大事情的,小伙伴们加油呀,跟着小杨一起接着咬咬牙,坚持下去奥~好了废话不多说,今天学习的内容有昨天少了的循环结构,还有新内容那就是数组。今天又是元气满满的一天呢!冲呀冲呀!!!
循环结构
上集我们讲到,任何任何程序都是由三种基本结构构成的,顺序,分支,循环。 我们已经讲完分支了,接下来我们说一说循环结构
- 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