数组的定义和应用

数组的定义和应用
对于有些数据,只用简单的数据类型是不够的,难以反映出数据的特点,也难以有效地进行处理,因此就需要用到数组。
1基本概念
数组:具有一定顺序关系的若干相同类型数据的集合,为构造数据类型之一。
数组名:为该数据集合起的一个名字 。
数组元素:组成数组的数据。属同一数据类型,用数组名和下标确定。
其具体关系如下,在这里插入图片描述
2.一维数组的定义和引用
定义格式:数据类型 数组名[常量表达式];
例如,int a[6];
其中数组名为合法标识符,常量表达式表示元素个数下标,从0开始,不能为变量。
一位数组的引用:数组必须先定义后引用;只能逐个引用数组元素,不能一次引用整个数组。
引用形式:数组名[下标]
例如,

int a[5];
for(i=0;i<5;i++)
cout<<a[i];

3.一维数组的初始化
初始化是指在定义数组时,为数组元素赋初值。
例如,int a[5]={1,2,3,4,5};
等价于:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5
注:数组不初始化,其元素值为随机数。
可以只给部分数组元素赋初值,其余的自动赋以0值。
当全部数组元素赋初值时,可不指定数组长度。
一维数组例题,
用简单选择法对10个数排序

#include <iostream>
using namespace std;
#define SIZE 10
void main()
{ int a[SIZE],i,j,k,x;
cout<<"Input "<< SIZE<<" numbers:\n";
for(i=0;i< SIZE;i++) cin>>a[i];
for(i=0;i< SIZE-1;i++) //找第i个最小数
{ k=i; //第i个最小数的下标是k
for(j=i+1;j< SIZE;j++)
if(a[j]<a[k]) k=j;
if(i!=k) //第i个最小数的下标不是i
{x=a[i];a[i]=a[k];a[k]=x;}
}
cout<<"The sorted numbers:\n";
for(i=0;i< SIZE;i++)
cout<<a[i]<<" ";
}

4.二维数组的定义和引用
定义格式:数据类型 数组名[常量表达式][常量表达式];
第一个表达式为行数,第二个为列数。二维数组的元素存放顺序为按行序优先,多维数组元素存放顺序为左右下标变化最快。
例如,a[3][4]即可理解为,
a[0] a[0][0] a[0][1] a[0][2] a[0][3]
a[1] a[1][0] a[1][1] a[1][2] a[1][3]
a[2] a[2][0] a[2][1] a[2][2] a[2][3]
二维数组的引用形式:数组名[下标] [下标]
5.二维数组的初始化
二维数组采用分行初始化,具体格式如下例,

此处的初始化结果为把array[0][0]初始化为4,array[0][1]初始化为2,array[1][0]初始化为5,array[2][0]初始化为6。

二维数组例题,
将下列二维数组行列元素互换,存到另一个二维数组中。在这里插入图片描述

#include <iostream>
using namespace std;
void main()
{ int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
cout<<"array a:\n";
for(i=0;i<=1;i++)
{ for(j=0;j<=2;j++)
{ cout<<a[i][j];
b[j][i]=a[i][j];
}
cout<<endl;
}
cout<<"array b:\n";
for(i=0;i<=2;i++)
{ for(j=0;j<=1;j++)
cout<<b[i][j];
cout<<endl;
}
}

猜你喜欢

转载自blog.csdn.net/lxh13161423/article/details/84936649