C/C++教程

C++ 9.数组—一维数组(定义方式、数组名用途、案例:五只小猪称体重—数组元素逆置—冒泡排序)

本文主要是介绍C++ 9.数组—一维数组(定义方式、数组名用途、案例:五只小猪称体重—数组元素逆置—冒泡排序),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

数组定义

数组特点

一维数组定义方式

一维数组数组名用途

一维数组案例:五只小猪称体重

一维数组案例:数组元素逆置

一维数组案例:冒泡排序


数组定义

就是一个集合,里面存放相同类型的数据元素

数组特点

1.数组中每个数据元素都是相同的数据类型
2.数组是由连续的内存位置组成的

一维数组定义方式

1.数据类型 数组名[ 数组长度 ];
2.数据类型 数组名[ 数组长度 ]={ 值1,值2...};
3.数据类型 数组名[ ]={ 值1,值2...};

int main()
{
	//定义方式1:数据类型 数组名[ 元素个数 ];
	int score[10];  //10个数,下标从0~9
	//利用下标赋值
	score[0] = 100;
	score[1] = 50;
	//利用下标访问数据元素
	cout << score[0] << endl;

	//定义方式2:数据类型 数组名[ 数组长度 ]={ 值1,值2...};
	//如果在初始化数据时,没有全部填写完,会用0来填补剩余的数据
	int arr[5] = { 10,20,30,40,50 };
	//利用下标访问数据元素
	//cout << arr[3] << endl;
	//利用循环,输出数组中的元素
	for (int i = 0; i < 5; i++)
	{
		cout << arr[i] << endl;
	}

	//定义方式3:数据类型 数组名[ ]={ 值1,值2...};
	int arr1[ ] = { 10,20,40,50,1,3 };
	//访问数据元素
	for (int i = 0; i < 6; i++)
	{
		cout << arr1[i] << endl;
	}

	system("pause");
	return 0;
}

一维数组数组名用途

1.统计整个数组在内存中的长度  sizeof(arr)、sizeof(arr[2]) 
2.获取数组在内存中的首地址  cout<<arr<<endl

int main()
{
	//1.统计整个数组在内存中的长度
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	cout << "整个数组占用内存空间为:" << sizeof(arr)<<endl;
	cout << "每个元素占用内存空间为:" << sizeof(arr[2]) << endl;
	cout << "数组中元素的个数:" << sizeof(arr) / sizeof(arr[2]) << endl;

	//2.获取数组在内存中的首地址
	cout << "数组首地址为:" << arr << endl;//十六进制
	cout << "数组首地址为:" << int(arr) << endl;//十进制
	cout << "数组中第一个元素地址为:" << (int)&arr[0] << endl;
	cout << "数组中第二个元素地址为:" << (int)&arr[1] << endl;

	//arr = 100;  //数组名是常量,不可以进行赋值操作

	system("pause");
	return 0;
}

一维数组案例:五只小猪称体重

一个数组中记录了五只小猪的体重,打印出最重的那只

int main()
{
	//1.统计整个数组在内存中的长度
	int arr[5] = { 300,350,200,400,250 };
	int max = 0;
	for (int i = 0; i < 5; i++)
	{
		if (arr[i] > max)
		{
			max = arr[i];
		}
	}
	cout << "最重的小猪为:" << max << endl;
	
	system("pause");
	return 0;
}

一维数组案例:数组元素逆置

一个5个元素数组,并且将元素逆置 

int main()
{
	//创建数组
	int arr[5] = { 300,350,200,400,250 };
	cout << "数组逆置前" << endl;
	for (int i = 0; i < 5; i++)
	{
		cout << arr[i] << endl;
	}

	//实现逆置
	//1.记录起始下标位置
	//2.记录结束下标位置
	//3.起始下标与结束下标的元素互换
	//4.起始位置++,结束位置--
	//5.循环执行1,知道起始位置>=结束位置
	
	int start = 0;
	int end = sizeof(arr) / sizeof(arr[start])-1; //数组中元素的个数-1=结束下标。 注:减1
	while (start < end)
	{
		//元素互换
		int temp = arr[start];
		arr[start] = arr[end];
		arr[end] = temp;
		//下标更新
		start++;
		end--;
	}
	//打印逆置后数组
	cout << "数组逆置后" << endl;
	for (int i = 0; i < 5; i++)
	{
		cout << arr[i] << endl;
	}

	system("pause");
	return 0;
}

一维数组案例:冒泡排序

比较相邻的元素,如果第一个比第二个大,就交换他们两个。每一对相邻元素做相同的工作,执行完毕,找到第一个最大值。重复以上的步骤,每次比较次数-1,直到不需要比较。

int main()
{
	//利用冒泡排序实现升序排列
	int arr[9] = { 4,2,8,0,5,7,1,3,9};
	cout << "排序前的数组为:" <<endl;
	for (int i = 0; i < 9; i++)
	{
		cout << arr[i] << " ";
	}
	cout << endl;

	//排序总轮数=元素个数-1
	for (int i = 0; i < 9; i++)
	{
		//每轮对比的次数=元素个数-排序轮数-1
		for (int j = 0; j < 9 - i - 1; j++)
		{
			if (arr[j] > arr[j + 1])
			{
				//第一个数字大于第二个,交换元素
				int temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
	//排序后结果
	cout << "排序前的数组为:" << endl;
	for (int i = 0; i < 9; i++)
	{
		cout << arr[i] << " ";
	}
	cout << endl;

	system("pause");
	return 0;
}

 

这篇关于C++ 9.数组—一维数组(定义方式、数组名用途、案例:五只小猪称体重—数组元素逆置—冒泡排序)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!