【0基础学习C++】第5节 C++study_05

本节内容:二维数组

#include <iostream>
using namespace std;

//二维数组

int main()
{
	/*
		二维数组定义的四种方式:
		1.数据类型 数组名[行数][列数]; 
		2.数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4}};
		3.数据类型 数组名[行数][列数] = {数据1, 数据2, 数据3, 数据4};
		4.数据类型 数组名[ ][列数] = {数据1, 数据2, 数据3, 数据4};
	*/

	//1.数据类型 数组名[行数][列数];
	int arr1[2][3]; //2行3列
	arr1[0][0] = 1;
	arr1[0][1] = 2;
	arr1[0][2] = 3;
	arr1[1][0] = 4;
	arr1[1][1] = 5;
	arr1[1][2] = 6;

	cout << arr1[0][0] << endl;
	cout << arr1[0][1] << endl;
	cout << arr1[0][2] << endl;
	cout << arr1[1][0] << endl;
	cout << arr1[1][1] << endl;
	cout << arr1[1][2] << endl;

	//嵌套循环输出二维数组:外层控制行数,内层控制列数
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			cout << arr1[i][j] << endl;
		}
	}

	//2.数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4}};
	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;
	}

	//方式3
	//数据类型 数组名[行数][列数] = { 数据1,数据2 ,数据3,数据4  };
	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;
	}


	//方式4 
	//数据类型 数组名[][列数] = { 数据1,数据2 ,数据3,数据4  };
	int arr4[][3] = { 1,2,3,4,5,6 };
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			cout << arr4[i][j] << " ";
		}
		cout << endl;
	}


	//二维数组名的作用
	/*
		1、查看二维数组所占内存空间
		2、获取二维数组首地址
	*/

	//1、查看二维数组所占内存空间
	cout << "二维数组arr2占用的内存空间为:" << sizeof(arr2) << endl;
	cout << "二维数组arr2第一行占用内存为:" << sizeof(arr2[0]) << endl;
	cout << "二维数组arr2第一个元素占用内存为:" << sizeof(arr2[0][0]) << endl;
	cout << "二维数组arr2的行数为:" << sizeof(arr2) / sizeof(arr2[0]) << endl;
	cout << "二维数组arr2的列数为:" << sizeof(arr2[0]) / sizeof(arr2[0][0]) << endl;

	//2、获取二维数组首地址
	cout << "二维数组arr2的首地址为:" << (long long)arr2 << endl;
	cout << "二维数组arr2第一行的首地址为:" << (long long)arr2[0] << endl;
	cout << "二维数组arr2第二行的首地址为:" << (long long)arr2[1] << endl;
	cout << "二维数组arr2第一个元素的首地址为:" << (long long)&arr2[0][0] << endl;
	cout << "二维数组arr2第二个元素的首地址为:" << (long long)&arr2[0][1] << endl;
	
	//二维数组应用案例
	/*
		考试成绩统计:
		案例描述:有三名同学(张三,李四,王五),
		在一次考试中的成绩分别如下表,
		请分别输出三名同学的总成绩。

		|      | 语文 | 数学 | 英语 |
		| ---- | ---- | ---- | ---- |
		| 张三 | 100  | 100  | 100  |
		| 李四 | 90   | 50   | 100  |
		| 王五 | 60   | 70   | 80   |
	*/

	string names[3] = { "张三", "李四", "王五" };
	int arr5[3][3] =
	{
		{100, 100, 100},
		{90, 50, 100},
		{60, 70, 80}
	};

	for (int i = 0; i < 3; i++)
	{
		int sum = 0;
		for (int j = 0; j < 3; j++)
		{
			sum += arr5[i][j];
		}
		cout << names[i] << "同学本次考试的总成绩为:" << sum << endl;
	}




	system("pause");
	return 0;
}

一节一篇代码,简单粗暴,适合快速学习/复习C++基础知识。

上一节: 【0基础学习C++】第4节 C++study_04-CSDN博客

下一节: 【0基础学习C++】第6节 C++study_06-CSDN博客

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值