数组

接触数组已经有近四个星期了,也做了一些数组方面的题,下面先总结一下数组中的重要知识点:

一.数组分为两种
一维数组
一维数组的声明包括如下结构:类型 变量名[N],其中N是你要定义的一维数组长度。
在文件main()函数中输入以下语句
int a[10];//声明一维整形数组,数组长度为10。最好放在文件的最前边,从而能限制整个程序
for (int i =0;i<10;i++)
{
a[i]=i;
cout<<i<<endl;
}
return 0;

二维数组
二维数组的声明结构:类型 变量名[M][N],其中M代表行数,N代表列数。
在main()函数中输入以下代码
int a[4][5];//二维数组声明
int i,j;
for ( i =0;i<4;i++)
{
for (j=0;j<5;j++)
{
a[i][j]=(i+1)+(j+1);
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
二. 一维数组元素的初始化    
 有下列方法初始化:   
1)在定义数组时,对数组元素赋初值;  
   例如: int a[10]={0,1,2,3,4,5,6,7,8,9};       
上面的语句等价于    a[0]=0,a[1]=1, 
 2)可以只给一部分元素赋初值,
例如:      int a[10]={0,1,2,3,4};     
 表示只给数组的前5个元素赋初值,后5 个元素的值,系 统自动默认为0 
3)在对全部数组元素赋初值时,可以不指定数组长度;
例如:     int a[5]={0,1,2,3,4};     

可以改写为: int a[]={0,1,2,3,4};    
但是,int a[10] ={0,1,2,3,4}; 不能改写为: int a[]={0,1,2,3,4};

一维数组的引用      
数组必须先定义,后使用! 
C语言规定: 只能逐个引用数组元素,而不能一次引用整个数组!  数组的引用形式为:   数组名[下标]  其中,下标可以是整型常量也可以是整型表达式.     
例如: a[0]=a[5]+a[7]+a[2*3]
三.二维数组的初化
二维数组初始化也是在类型说明时给各下标变量赋以初值.二维数组可以按行分段赋值,也可以按行连续赋值    
1. 按行分段赋值     int a[2][3]={{1,2,3}, 
{4,5,6}};    
 2. 按行连续赋值     int a[2][3]={1,2,3,4,5,6}; 
这两种赋值的结果是完全相同的; 
 说明:    
 1. 可以只对部分元素赋值,未赋值的元素自动取0;     
 例如: int a[3][3]={{1},{2},{3}};      
 是对每行的第一列元素赋值,未赋值的元素自动取0 
 2. 如果对所有的元素赋初值,则第一维的长度可以不给出;         
例如: int a[3][3]={1,2,3,4,5,6,7,8,9};     可以改为: int a[][3]={1,2,3,4,5,6,7,8,9}
二维数组的引用
   引用形式:数组名[下标][下标]  
其中下标应该为整型常量或整型表达式;  例如: int a[3][4];  a[2][3]  
表示数组a的第三行第四列的元素. 
注意:下标变量和数组说明在形式上有些相似,但这两者具有完全不同的含义;

四. 一维数组的程序举例 
1.读10个数存入数组中,输出数组中的所有数据.  
  main()   
 {      
 int i,a[10];    
  for(i=0;i<=9;i++) 
   a[i]=i;   /顺序给数组元素赋初/    
  for(i=0;i<=9;i++)      
    printf(“%d”,a[i]); /顺序输出数组元素/ 
} 
2.读10个整数存入数组中,输出平均值. 
#include <stdio.h>
 #define size  10
main() 
{   
 int x[size],i;  
 float s=0,ave;  
 for(i=0;i<size;i++)    
 scanf(“%d”,&x[i]); 
for(i=0;i<size;i++)   
 s+=x[i];
 ave=s/size; 
printf(“%d\n”,ave); 
}
二维数组应用举例
一个二维数组的行和列元素互换,存到另一个二维 数组中. 
a={{1,2,3},{4,5,6}}          b={{1,4},{2,5}{3,6}};   
分析: 首先,给a赋值; 然后,通过a给b赋值,b[i][j]=a[j][i]; 最后,输出b的值;  
#include <stdio.h> 
int main()

{ 
int a[2][3]={{1,2,3},{4,5,6}}; 
int b[3][2],i,j;  
for(i=0;i<=1;i++) 
   {      
 for(j=0;j<=2;j++)      
 {         
 printf(“%d”,a[i][j]);        
 b[j][i]=a[i][j]; 
} 
printf(“\n”);
 }   
for(i=0;i<=2;i++)  
   {       
 for(j=0;j<=1;j++)     
     printf(“%d”,b[i][j]);   
    printf(“\n”); 
} 
}

感想:数组能够更加精确简便的解决问题,但是需要熟练的掌握,
但是学到现在,感觉自己并没有深刻的理解和认识到数组的真正
核心之处,还需要仔细研究题目,更加深入的理解一下!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值