C/C++教程

C++学习6(二维数组)

本文主要是介绍C++学习6(二维数组),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include <iostream>
using namespace std;
#include <string>
int main()
{
	//二维数组的定义方式
	/*1.数据类型  数组名[行数][列数];
	2.数据类型  数组名[行数][列数]={{数据1,数据2},{数据3,数据4}...}
	3.数据类型  数组名[行数][列数]={数据1,数据2,数据3,数据4...}
	4.数据类型  数组名[][列数]={数据1,数据2,数据3,数据4...}*/

	cout << "二维数组 " << endl;
	//第一种定义方法
	cout << "第一种定义" << endl;
	int arr1[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][2] << endl;
	//用嵌套循环输出避免一个一个输出
	for (int i = 0;i < 2;i++)
	{
		cout << "第" << i + 1 << "行为: ";
		for (int j = 0;j < 3;j++)
		{
			cout << arr1[i][j] << "  ";
		}
		cout << endl;
	}
	
	
	//第二种定义
	cout << "第二种定义" << endl;
	int arr2[2][3] = {
		{1,2,3},
		{4,5,6}
	};
	for (int i = 0;i < 2;i++)
	{
		cout << "第" << i + 1 << "行为: " ;
		for (int j = 0;j < 3;j++)
		{
			cout << arr2[i][j] << "  ";
		}
		cout << endl;

	}
	//第三种定义
	cout << "第三种定义" << endl;
	int arr3[2][3] = {1,2,3,4,5,6};
	for (int i = 0;i < 2;i++)
	{
		cout << "第" << i + 1 << "行为: ";
		for (int j = 0;j < 3;j++)
		{
			cout << arr3[i][j] << "  ";
		}
		cout << endl;

	}
	//第四种定义
	int arr4[][3] = { 1,2,3,4,5,6 };//只可省去行一个,不能省去列数
	for (int i = 0;i < 2;i++)
	{
		cout << "第" << i + 1 << "行为: ";
		for (int j = 0;j < 3;j++)
		{
			cout << arr4[i][j] << "  ";
		}
		cout << endl;

	}
	cout << "\n " << endl;
	//二维数组的数组名
	/*1.查看二维数组所占内存空间
	2.获取二维数组首地址*/
	cout << "二维数组名的用途" << endl;
	int arr5[2][3] = {
		{7.8,9},
		{4,5,6}
	};
	cout << "int 二维数组所占用的内存空间" << sizeof(arr5) << endl;
	double arr6[2][3] = {
		{7.8,9},
		{4,5,6}
	};
	cout << "double 二维数组所占用的内存空间" << sizeof(arr6) << endl;
	cout << "double 二维数组第一行所占用的内存空间" << sizeof(arr6[0]) << endl;
	cout << "double 二维数组第一个元素所占用的内存空间" << sizeof(arr6[0][0]) << endl;
	int rows, cols;
	rows = sizeof(arr6) / sizeof(arr6[0]);
	cols = sizeof(arr6[0]) / sizeof(arr6[0][0]);
	//int size = sizeof(Arr) / sizeof(Arr[0][0]);//数组元素总数
	//int rows = sizeof(arr) / sizeof(arr[0]);//行数
	//int cols = sizeof(arr[0]) / sizeof(arr[0][0]);//列数
	cout << "数组arr6的行数为:" << rows << endl; //行数
	cout << "数组arr6的列数为:" << cols << endl; //列数
	cout << "\n " << endl;
	//查看二维数组的首地址
	cout << "二维数组arr6的首地址为:" <<(int) arr6 << endl;
	cout << "二维数组arr6的第一行首地址为:" << (int) arr6[0] << endl;
	cout << "二维数组arr6的第一个元素首地址为:" << &arr6[0][0] << endl;
	//二维数组的首地址和第一行首地址和第一个元素的首地址相同
	cout << "二维数组arr6的第二行首地址为:" << (int)arr6[1] << endl;
	cout << "\n " << endl;
	//二维数组的应用案例
	cout << "二维数组的应用案例(考试成绩统计)" << endl;
	//创建二维数组
	int scores[3][3] = {
		{100,100,100},//张三
		{90,50,100},//李四
		{60,70,80}//王五
	};
	
	//统计每个人的总和分数
	string name[3] = { "张三","李四","王五" };
	for (int i = 0;i < 3;i++)
	{
		int sum = 0;//成绩总和
		for (int j = 0;j < 3;j++)
		{
			sum += scores[i][j];
			//cout << scores[i][j] << "  ";
		}
		cout << name[i]<< "的总分: "<<sum;
		cout << endl;

	}
	cout << "\n " << endl;
	system("pause");
	return 0;
}
这篇关于C++学习6(二维数组)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!