目录
概述
一维数组:
定义
数组名的用途
练习
1、输出最重的小猪体重
2、数组元素逆置
3、冒泡排序
二维数组:
定义
函数名的用途
所谓数组就是一个集合,里面存放了相同类型的元素
特点1:一个数组中,所有的元素数据类型都是相同的
特点2:数组是有连续的内存地址构成的
数据类型 数组名[数据长度];
数据类型 数组名[数据长度]={值1,值2,值3......};
数据类型 数组名[]={值1,值2,值3......};
1、可已统计整个数组在内存中的总长度
2、可以获取数组在内存中首地址
void Heaviest_Pig(void)
{
int Pig_Weight[] = { 500,300,350,350,600,200,150 };
int i, heaviest=0;
int num = sizeof(Pig_Weight) / sizeof(Pig_Weight[0]);
for (i = 0; i < num; i++)
{
if (Pig_Weight[i] > heaviest)
heaviest = Pig_Weight[i];
}
cout << "The_Heaviest_Pig:" << heaviest << endl;
}
void Inversion_ARR(void)
{
int NUM[] = { 1,2,3,4,5,6,7,8,9 };
int Start=0, End;
int temp;
int NUM_Len = sizeof(NUM) / sizeof(NUM[0]);
End = sizeof(NUM) / sizeof(NUM[0])-1;
while (Start < End)
{
temp = NUM[Start];
NUM[Start] = NUM[End];
NUM[End] = temp;
Start++;
End--;
}
for (int i = 0; i < NUM_Len; i++)
{
cout << NUM[i] << " " ;
}
}
作用:最常用的排序算法,对数组内元素进行排序
1、比较相邻两个元素,第一个数据比第二个数据大,就交换他们的位置。
2、每一对相邻数据比较完毕后,找到第一个最大值,排序在数组最后
3、重复以上步骤,每次比较次数-1,直道不需要比较
//函数功能:冒泡排序
//排序的总轮数=元素个数-1
//每轮对比的次数 = 元素个数- 排序轮数
void Bubble_sort(void)
{
int Bubble_ARR[] = { 8,6,9,4,11,45,88,33,15,74,56,83 };
int Arr_len = sizeof(Bubble_ARR) / sizeof(Bubble_ARR[0]);
for (int i = 0; i < Arr_len-1; i++)
{
for (int j = 0; j < Arr_len - i - 1; j++)
{
int temp = 0;
if (Bubble_ARR[j] > Bubble_ARR[j + 1])
{
temp = Bubble_ARR[j+1];
Bubble_ARR[j + 1] = Bubble_ARR[j];
Bubble_ARR[j] = temp;
}
}
}
for (int i = 0; i < Arr_len; i++)
{
cout << Bubble_ARR[i] << " ";
}
}
二维数组就是再一维数组的基础上增加了一个维度,就是在一维数组里存储了一维数组。
二维数组在本质上是由多个一维数组构成。(每个一维数组的大小必须相同)
数据类型 数组名[行][列];
数据类型 数组名[行][列] = {{数据1,数据2},{数据3,数据4}};
数据类型 数组名[行][列] = {数据1,数据2,数据3,数据4};
//Noties:对二维数组初始化,第一维的长度可以忽略不写,但是第二维不可省略
数据类型 数组名[][列] = {数据1,数据2,数据3,数据4};
建议:采用第二种命名方式,更加直观,提高代码可读性。
1、查看二维数组所占内存空间
2、查看二维数组首地址