数组

数组:
什么是数组:变量的组合,是一种批量定义变量的方式
定义:类型 数组名[数量];
int arr[5];
使用:数组名[下标];
下标:从零开始,范围:0~数量-1
遍历:
与for循环配合,使用循环变量i作为数组的下标
初始化:类型 数组名[数量]={1,2,3,4,5…};
1、数组与普通变量一样默认值是随机的,为了安全起见要对他进行初始化
2、这种初始化的方式只能在定义语句中使用,而且只能逐个赋值,不能整体赋值
3、初始化的数量过多,编译器会产生警告并丢弃
4、初始化的数量过少,编译器会补0
5、大括号里的数据可以省略,只写大括号,相当于给所有成员赋0
6、初始化时数量也可以省略,编译器会自动计算数据的个数然后告诉数组
计算数组个数:sizeof(arr)/sizeof(arr[0]) =数组的长度

练习1;
     定义一个长度为10的数组并初始化,计算出最大值、最小值、平均值
练习2:
     定义一个长度为10的数组并初始化,进行升序排序
练习3:
     定义一个长度为10的数组并初始化,找出数组中第二大的值,不允许排序

数组越界:为了程序运行效率是不会检查数组的下标
数组越界的后果:
1、一切正常
2、段错误
3、脏数据

二维数组:
一维数组相当于吧变量排成一排,通过编号来访问
二维数组相当于把变量排成矩阵,通过行号和列号来访问
定义:
类型 数组名[行数][列数];
int arr[3][5];
使用:数组名[行下标][列下标]
行下标:0~行数-1
列下标:0~列数-1
遍历:
需要与双层for循环配合,外层循环负责遍历行,内层循环负责遍历列
for(int i=0;i<3;i++)
{
for(int j=0;j<5;j++)
{
printf("%d “,arr[i][j]);
}
printf(”\n");
}

初始化:
      类型 数组名[行数][列数]={{第一行}{第二行}{第三行}...}

练习4:定义一个5*5的二维数组并初始化,找出数组中最大值的坐标

练习5:定义一个3*3的二维数组然后输入各个元素的值,计算所有变量之和,统计非零的成员的个数,计算所有元素的平均值,在统计大于平均值的元素的个数

练习6:定义一个5*5的二维数组,找出其中最小值的下标,并计算出周围的元素的和

变长数组:
定义数组时使用变量作为数组长度,在编译期间数组的长度是不确定的,当程序运行到数组的定义语句时它的长度才能确定下来,一旦确定下来长度无法改变

   优点:可以根据实际情况确定数组的长度,达到节约内存的目的
   缺点:不可以初始化,初始化发生在编译期间

作业:
    显示n层的杨辉三角
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值