C++自学笔记003

C++自学笔记003

一维数组
冒泡排序
二维数组

#include <iostream>
using namespace std;

int main()
{
	//数组
	//特点:1、放在一块连续的内存空间中;2、数组中每个元素都是相同的数据类型
	//如果初始化数组是没有全部定义数组元素,则未定义的元素将会自动用零补齐
	/*定义一个数组的格式:
	1、数据类型 数组名[数组长度];
	2、数据类型 数组名[数组长度] = {值1,值2,值2,...};
	3、数据类型 数组名[] = {值1,值2,值3,...};*/
	//例子:定义一个数组,利用循环语句输出
	int arr1[5] = {10, 20, 30, 40, 50};
	for(int i = 0; i < 5; i++)
	{
		cout << arr1[i] << endl;
	}

	/*一维数组名称的用途
	1、可以统计整个数组在内存中的长度;
	2、可以获取数组在内存中的首地址。*/
	cout << "整个数组所占空间为:" << sizeof(arr1) << endl;
	cout << "每个元素所占空间为:" << sizeof(arr1[0]) << endl;
	cout << "整个数组所含元素个数为:" << sizeof(arr1) / sizeof(arr1[0]) << endl;
	cout << "数组首地址为(十六进制):" << arr1 << endl;
	cout << "数组首地址为(二进制):" << (int)arr1 << endl;
	cout << "第一个元素所占地址为(二进制):" << (int)&arr1[0] << endl; //&表示为取置符号

	//练习案例:五只小猪称体重,找出最终的小猪
	int pigs[5] = {300, 350, 200, 400, 250};
	int maxpig = 0;
	for(int i1 = 0; i1 < 5; i1++)
	{
		if(maxpig < pigs[i1])
		{
			maxpig = pigs[i1];
		}
	}
	cout << "最终的小猪体重为:" << maxpig << endl;
	//练习案例:数组元素逆置
	int arr2[5] = {1, 3, 2, 5, 4};
	int t = 0;
	int end = sizeof(arr2) / sizeof(arr2[0]) - 1;
	for(int i2 = 0; i2 <= end; i2++)
	{
		t = arr2[i2];
		arr2[i2] = arr2[end];
		arr2[end] = t;
		end--;
	}
	for(int i3 = 0; i3 < 5; i3++)
	{
		cout << arr2[i3] << endl;
	}
	//冒泡排序法的实现:
	int arr3[10] = {4, 2, 6, 8, 0, 5, 7, 1, 3, 9};
	int temp;
	int end1 = 10;
	for(int i4 = 0; i4 < 10; i4++)
	{
		for(int i5 = 0; i5 < end1 - 1; i5++)  //end1不能忘记-1
		{
			if(arr3[i5] > arr3[i5 + 1])
			{
				temp = arr3[i5];
				arr3[i5] = arr3[i5 + 1];
				arr3[i5 + 1] = temp;
			}
		}
		end1--;
		for(int j = 0; j < 10; j++)
		{
			cout << arr3[j];
		}
		cout << endl;
	}
	//二维数组定义格式:
	/*
	1、数据类型 数组名[行数][列数];
	2、数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4},...}
	3、数据类型 数组名[行数][列数] = {数据1,数据2,数据3,数据4,...}
	4、数据类型 数组名[  ][列数] = {数据1,数据2,数据3,数据4,...}  
	*/
	//统计三名同学的总成绩
	int score[3][3] = 
	{
		{100, 100, 100},
		{90, 50, 100},
		{60, 70, 90}
	};
	int sum[3] = {0, 0, 0};
	for(int i = 0; i < 3; i++)
	{
		for(int j = 0; j < 3; j++)
		{
			sum[i] += score[i][j];
		}
		cout << sum[i] << endl;
	}

	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仲子_real

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值