数组

  • Post author:
  • Post category:其他




数组新世界

1数据类型

一维数组的定义
在这里插入图片描述



一维数组的定义

数据类型 数组名[常量表达式];

注意不要越界

数组名表示内存首地址,它是地址常量

常量表达式包括常量、符号常量



初始化

一维数组的初始化

初始化是指在定义数组时,为数组元素赋初值

(在编译阶段使之得到初值)

数组不初始化,其元素值为随机数

可以只给部分数组元素赋初值,其余的自动赋以0



当全部数组元素赋初值时,可不指定数组长度

int a[5]={1,2,3,4,5};

等价于:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5;

必考题

———-读10个整数存入数组,找出其中最大值及其位置

#include

using namespace std;

#define SIZE 10

void main()

{int x[SIZE],i,k;

cout<<“Input “<< SIZE<<” numbers:\n”;

for(i=0;i<SIZE;i++) cin>>x[i];

k=0;

for(i=1;i<SIZE;i++)

if(x[k]<x[i]) k=i;

cout<<“Maximum value is “<<x[k]<<endl;

cout<<“it’s position is “<<k<<endl;

}

————–用简单选择法对10个数排序

#include

using namespace std;

#define SIZE 10

void main()

{ int a[SIZE],i,j,k,x;

cout<<“Input “<< SIZE<<” nfor(i=0;i< SIZE;i++) cin>>a[ifor(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:\nfor(i=0;i< SIZE;i++)

cout<<a[i]<<” “;

用冒泡法对n个数排序(由小到大)

#include

using namespace std;

// #define N 10

const int N=10;

void main()

{ int a[N+1],i,j,t;

cout<<“Input “<< N<<” numbers:\n”;

for(i=1;i<N+1;i++) cin>>a[i];

for(j=1;j<N;j++)

for(i=1;i<N+1-j;i++)

if (a[i]>a[i+1])

{ t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}cout<<“The sorted numbers:\n”;

for(i=1;i<N+1;i++) cout<<a[i]<<” “;



二维数组的引用

分行初始化

在每行的内容都多加个{}

可全部初始化,也可以部分初始化,只不过剩下来的都为零



举例

1—-

将二维数组行列元素互换存到另一个二维数组中———————-

#include

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;

}

}

2–求二维数组中最大元素值及其行列号——————————————–

#include

using namespace std;

void main()

{ int a[3][4]={

{1,2,3,4}, {9,8,7,6}, {-10,10,-5,2}};

int i,j,row=0,colum=0,max

max=a[0][0];

for(i=0;i<=2;i++)

for(j=0;j<=3;j++)

if(a[i][j]>max)

{ max=a[i][j];

row=i;

colum=j;

}cout<<“max=”<max<<“row=”<<row<<“colum=”<<colum;

3———- 读入下表中值到数组,

分别求各行、各列及表中所

有数之和———————————-

#include

using namespace std;

int main()

{ int x[5][4],i,j;

for(i=0;i<4;i++)

for(j=0;j<3;j++)

cin>>x[i][j];

for(j=0;j<3;j++) x[4][j]=0;

for(i=0;i<5;i++) x[i][3]=0;

for(i=0;i<4;i++)

for(j=0;j<3;j++)

{ x[i][3]+=x[i][j];

x[4][j]+=x[i][j];

x[4][3]+=x[i][j];

}

for(i=0;i<5;i++)

{ for(j=0;j<4;j++)

cout<<x[i][j];

cout<<endl; }

return 0;

}

在这里插入图片描述



版权声明:本文为qq_43427905原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。