C++自学笔记

C++自学笔记(05 数组)

05 数组

本次记录数组,还请各位大佬批评指正!

一维数组

1、与变量命名规范一致,不要与变量重名;
2、下标从0开始索引。

	int num[5];
	num[0] = 10;
	num[1] = 10;
	num[2] = 10;
	num[3] = 10;
	num[4] = 10;
	for (int a = 0; a < 5; a++)
	{
		cout << num[a] << endl;
	}

	int num2[5] = { 1,2,3,4,5 };
	for (int a = 0; a < 5; a++)
	{
		cout << num2[a] << endl;
	}

	int num3[] = { 6,6,6 };
	for (int a = 0; a < 3; a++)
	{
		cout << num[a] << endl;
	}
    //数组的长度和内存的首地址
	int arr[5] = { 1,2,3,4,5 };
	cout << sizeof(arr) << endl;
	cout << sizeof(arr[0]) << endl;
	cout << sizeof(arr)/ sizeof(int) << endl;
	cout << (int)arr << endl;
	cout << (int)&arr[0] << endl;
    //数组元素逆序
	int arr[4] = { 1,2,3,4 };
	int arr1[4];
	for (int a = 0; a < 4; a++)
	{
		arr1[3 - a] = arr[a];
	}
	for (int a = 0; a < 4; a++)
	{
		cout << arr1[a] << endl;;
	}

	int arr[9] = { 1,2,3,4,5,6,7,8,9 };
	cout << "数组逆制前:" << endl;
	for (int a = 0; a < 9; a++)
	{
		cout << arr[a] << endl;
	}
	int s=0 ;
	int e = sizeof(arr) / sizeof(int) - 1;
	for (int a = 0; a < 9; a++)
	{
		if (s < e)
		{
			int temp = arr[s];
			arr[s] = arr[e];
			arr[e] = temp;
		}
		s++;
		e--;
	}
	cout << "数组逆制后:" << endl;
	for (int a = 0; a < 9; a++)
	{
		cout << arr[a] << endl;
	}

冒泡排序

    int arr[10] = { 10,9,8,7,6,5,4,3,2,1 };
	int s = sizeof(arr) / sizeof(int); //元素个数
	cout << "排序前:" << endl;
	for (int a = 0; a < s; a++)
	{
		cout << arr[a] << endl;
	}
	//开始冒泡排序
	//排序总轮数=s-1   每轮对比次数=s-排序轮数-1
	int temp = 0;
	for (int a = 0; a < s-1; a++)
	{
		for (int b = 0; b < s - a - 1; b++)
		{
			if (arr[b] >= arr[b + 1])
			{
				temp = arr[b];
				arr[b] = arr[b + 1];
				arr[b + 1] = temp;
			}
		}
	}
	cout << "排序后:" << endl;
	for (int a = 0; a < s; a++)
	{
		cout << arr[a] << endl;
	}

二维数组

    int arr[2][6] =
	{
		{1, 2, 3, 4, 5, 6},
		{2, 3, 4, 5, 6, 7}
	};
	for (int a = 0; a < 2; a++)
	{
		for (int b = 0; b < 6; b++)
		{
			cout << arr[a][b]<<" " ;
		}
		cout << endl;
	}
    //二维数组名称用途  查看占用内存空间大小二维数组首地址
	int arr[2][3] =
	{
		{1, 2, 3},
		{4, 5, 6}
	};
	cout <<"二维数组占用内存大小为"<< sizeof(arr) << endl;
	cout << "二维数组第一行占用内存大小为" << sizeof(arr[0]) << endl;
	cout << "二维数组第一个元素占用内存大小为" << sizeof(arr[0][0]) << endl;
	cout << "二维数组是" << sizeof(arr)/sizeof(arr[0])<<"行" << sizeof(arr[0])/ sizeof(arr[0][0]) <<"列的数组"<< endl;
	cout << "二维数组首地址" << (int)arr << endl;
	cout << "二维数组第一个元素首地址" << (int)&arr[0][0] << endl;
    //案例 考试成绩的统计
	int arr[3][3] =
	{
		{100, 100, 100},
		{90, 50, 100},
		{60, 70, 80}
	};
	string name[3] = { "张三","李四","王五" };  //这里要包含头文件#include<string>
	for (int i = 0; i < 3; i++)
	{
		int sum = 0;
		for (int j = 0; j < 3; j++)
		{
			sum = sum + arr[i][j];
		}
		cout << name[i] <<"的总分为:"<< sum << endl;
	}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值