【C++入门】学习使用二维数组基本知识及用法详解

在这里插入图片描述



‍♂️iecne个人主页:iecne的学习日志
每天关注iecne的作品,一起进步
一起学习,必看iecne
希望大家多多支持一起进步呀!
iecne


文章目录

  • 一.定义方式
    • 1.1 逐个定义
    • 1.2 定义赋值
    • 1.3 定义赋值*2
  • 二.二维数组
  • 三.基本样例
    • 3.1 输入输出成绩
    • 3.2 比大小
  • 总结


一.定义方式

二维数组就是在一维数组上多加一个维度。
建议:以下三种定义方式,利用第二种更加直观,提高代码可读性

1.1 逐个定义

#include 
using namespace std;
int main()
{
       int arr[2][3];
       arr[0][0] = 1;
       arr[0][1] = 2;
       arr[0][2] = 3;
       arr[1][0] = 4;
       arr[1][1] = 5;
       arr[1][2] = 6;
       for (int i = 0; i < 2; i++)
       {
              for (int j = 0; j < 3; j++)
              {
                     cout << arr[i][j] << endl;
              }
       }
}

1.2 定义赋值

第二种就是在定义一个数组的时候直接开始赋值
具体如下

int arr2[2][3] =
       {
              {1,2,3},
              {4,5,6}
       };
       for (int i = 0; i < 2; i++)
       {
              for (int j = 0; j < 3; j++)
              {
                     cout << arr2[i][j] <<" ";
              }
              cout << endl;
       }

1.3 定义赋值*2


	   int arr3[2][3] = { 1,2,3,4,5,6 };
       for (int i = 0; i < 2; i++)
       {
              for (int j = 0; j < 3; j++)
              {
                     cout << arr3[i][j] <<" ";
              }
             cout << endl;
       }

这里输出的就是

1 2 3 4 5 6

大部分基本就是这样了


二.二维数组

比如定义一个三行四列的二维数组
【C++入门】学习使用二维数组基本知识及用法详解_第1张图片

这里我们就有12个可以储存数据
当然我们也可以不把0为开头,和一维数组同理哈

实际上可以这样比喻:一维数组是一列格子,二维数组就是一个长方形,每一个像素都是一个格子


三.基本样例

3.1 输入输出成绩

我们可以想想,若一个班有三个学生,每个学生需要学 语数英科 四门学科,也就是我们需要统计12门学科
那么我们应该如何模拟呢?

比如一个班有张三、李四、王五三个学生那么就应该这样:

#include 
using namespace std;
int main()
{
	int clas[3+5][4+5];

	return 0;
}

这里我们注意一下,定义一个数组的时候一定要多开 10或者5,但是至少要>1,否则可能越界,就是会超过我们数组,导致运行错误

所以我们直接开clas[8][9]即可

接下来我们输入

#include 
using namespace std;
int main()
{
	int clas[3+5][4+5];
	cout << "请输入张三的成绩";
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[1][i];
	}
	cout << "请输入李四的成绩";
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[2][i];
	}
	cout << "请输入王五的成绩";
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[3][i];
	}
	return 0;
}

接下来我们完成输出

#include 
using namespace std;
int main()
{
	int clas[3+5][4+5];
	cout << "请输入张三的成绩" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[1][i];
	}
	cout << "请输入李四的成绩" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[2][i];
	}
	cout << "请输入王五的成绩" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[3][i];
	}
	cout << endl << "张三的成绩:" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cout << clas[1][i] << " ";
	}
	cout << endl << "李四的成绩:" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cout << clas[2][i] << " ";
	}
	cout << endl << "王五的成绩:" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cout << clas[3][i] << " ";
	}
	return 0;
}

如此
我们就完成了三人四科的输入输出


3.2 比大小

比大小这块我们就需要再输入的时候改造改造,并且用到max函数和min函数

输入同理

#include 
using namespace std;
int main()
{
	int clas[3+5][4+5];
	cout << "请输入张三的成绩" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[1][i];
	}
	cout << "请输入李四的成绩" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[2][i];
	}
	cout << "请输入王五的成绩" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[3][i];
	}

	return 0;
}

接下来我们定义三个s用来统计信息,并且再统计最大和最小

#include 
using namespace std;
int main()
{
	int clas[3+5][4+5];
	int s[3 + 5];
	cout << "请输入张三的成绩" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[1][i];
		s[1] += clas[1][i];
	}
	cout << "请输入李四的成绩" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[2][i];
		s[2] += clas[2][i];
	}
	cout << "请输入王五的成绩" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[3][i];
		s[3] += clas[3][i];
	}
	int maxs = max({ s[1], s[2], s[3] });
	int mins = min({ s[1],s[2],s[3] });
	return 0;
}

最后输出完善

#include 
using namespace std;
int main()
{
	int clas[3+5][4+5];
	int s[3 + 5];
	cout << "请输入张三的成绩" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[1][i];
		s[1] += clas[1][i];
	}
	cout << "请输入李四的成绩" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[2][i];
		s[2] += clas[2][i];
	}
	cout << "请输入王五的成绩" << endl;
	for (int i = 1; i <= 4; i++)
	{
		cin >> clas[3][i];
		s[3] += clas[3][i];
	}
	int maxs = max({ s[1], s[2], s[3] });
	int mins = min({ s[1], s[2], s[3] });
	cout << "总分最好的是" << maxs;;
	cout << endl;
	cout << "总分最差的是" << mins;
	return 0;
}

但是如果s[]有多个一样就只能去重了,有多种方法比如用bool类标记输出或等……


总结

本节课主要是讲解了C++的教程,至此该课示例的思想博主已经真真切切彻彻底底分享完了,相信大家对这个逻辑有了一定的理解,大家可以自己动手敲敲代码,感受一下,包教包会。若有任何侵权和不妥之处,请私信于我,定积极配合处理,看到必回!!!

帅的人已然点赞收藏关注,而丑的人还在犹豫,被犹豫了,快三连吧!
原创不易,还希望各位大佬支持一下
点赞,你的认可是我创作的动力!
收藏,你的青睐是我努力的方向!
评论,你的意见是我进步的财富!
iecne


感谢每一个观看本篇文章的朋友,更多精彩敬请期待~( ̄▽ ̄~)~:
iecne的博客
若有任何侵权和不妥之处,请私信于我,定积极配合处理,看到必回!!!

iecne

你可能感兴趣的:(【C++入门】,c++,算法,数据结构,后端,java)