第六章 数组
一维数组
1 2 3 4 5 6 7 8 9 10 11
| int a[5];
int x[5] = {1,2,3,4,5};
for(i=0; i<元素个数; i++) 对a[i]的操作
|
一维数组的运用
已知10名同学的考试成绩,请编程统计及格人数,并计算10名同学成绩的平均分。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #inlcude <stdio.h> #include <stdlib.h> #define N 5
int main() { float b[N] = {58.0, 69.0, 92.1, 33.3, 50.1, 66.5, 12.5, 63.4, 68.4, 10.1}, sum, avg; int i, pass; sum = 0; pass=0; for(i=0; i<N; i++) { sum += b[i]; if(b[i]>= 60) pass++; } avg = sum / N;
printf("通过考试人数为: %d\n", pass); printf("平均分数为: %5.1f", avg); }
|
5表示输出数字长度为五位
1表示输出数字的小数后1位
注意
1 2 3 4 5 6
| int a[5];int i=3; a[i]=1; 引用数组时,下标可以是常量 int x[i]; 定义数组时不能用变量表示元素个数 a[i++]=2; a[3]=2;之后i由3变为4 下标必须为整数 不能一次引用整个数组
|
一位数组的初始化
1 2 3 4 5 6 7 8 9 10 11
| int a[5] = {5, 10};
int a[5] = {5, 10, 0, 0, 0};
char s[4] = {'a', 'b'};
int a[] = {1,2,3,4,5};
int a[5] = {1,2,3,4,5};
|
程序例
1 2 3 4
| 1. 编程删除数组b中下标为2的元素 b[5] = {99, 60, 75, 86, 92}; 修改后 b[5] = {99, 60, 86, 92, 92};
|
1 2 3 4
| 2. 编程在数组b中的下标为2的元素之前,插入新元素100。 b[10] = {99, 60, 75, 86, 92}; 修改后 b[10] = {99, 60, 100, 75, 86, 92};
|
1 2 3 4
| 3. 选择排序,将数组b从小到大排序 b[5] = {99, 60, 75, 86, 92}; 排序后 b[5] = {60, 75, 86, 92. 99};
|
二维数组
二维数组又为特殊的一维数组,它的每个元素又是一维数组
1 2 3 4
| 二维数组的定义 数组类型 数组名[行数][列数] int a[2][3]; int型的变量名为a的数组,2行3列
|
二维数组在内存中的存储形式
硬件存储器(内存)是连续的和线性的,二维表形式的二维数组在内存中是线性存储和按行排列
。
注意:
任何情况下,都不能省略列数(即不能省略第二个[] 内的数);
在能判断出行数时,可省略行数(即可省略第一个[]内的数);
1 2 3
| int a[2][3]; a = {1,2,3,4,5}
|