一、一维数组
1.一维数组的定义
一维数组定义的一般形式: 数组类型 数组名[常量表达式];
数组类型是任一种基本数据类型或构造数据类型;数组名是用户定义的数组标识符;方括号中的常量表达式表示数组元素的个数,称为数组的长度。
例如:
int a[10]; //定义整型数组a,有10个元素
float b[10]; //定义实型数组b,有10个元素
char c[10]; //定义字符数组c,有10个元素
2.一维数组的初始化
给数组赋值的方法除了用赋值语句对数组元素逐个赋值外,还可以使用初始化赋值和动态赋值的方法。初始化赋值在定义数组时赋值,一般形式: 数组类型 数组名[常量表达式]={值,值,···,值};
在{ }中的各值之间用英文逗号间隔,例如:
int a[10]={0,1,2,3,4,5,6,7,8,9 };
赋值后:a[0]=0;a[1]=1;a[2]=2;·······a[8]=8;a[9]=9;
3.一维数组元素的引用
数组元素是组成数组的基本单元。数组元素也是一种变量,其标识方法为数组名后跟一个下标。数组元素的一般表达式为: 数组[下标]
下标表示了元素在数组中的顺序号,但其下标是从0开始计算。
方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。5个元素分别为a[0],a[1],a[2],a[3],a[4]。
例题:某位同学一学期有10门课,根据每门课程的得分情况,试查找出其最高分和最低分。
int main(){
int i,max,min;
int a[10]; //定义数组10个元素
printf("请输入十科的分数:\n");
for(i=0;i<=9;i++){ //循环输入数组,从a[0]开始赋值
scanf("%d",&a[i]);
}
max=min=a[0]; //假设最高分和最低分为a[0]
for(i=1;i<=9;i++){ //依次与各个元素进行比较
if(a[i]>max){
max=a[i];
}
if(a[i]<min){
min=a[i];
}
}
printf("最高分%d,最低分%d",max,min); //输出最高分和最低分
return 0;
}
输入:80 70 100 运行结果: 最高分100,最低分70
二、二维数组
1.二维数组的定义
二维数组定义的一般形式: 数组类型 数组名[常量表达式1][常量表达式2];
“常量表达式1”表示第1维下标的长度,“常量表达式2”表示第2维下标的长度。二维数组元素按行依次存储,每个存储单元占4个字节。
2.二维数组的初始化
二维数组初始化也是在类型声明时给各下标变量赋值,以数组元素的存储顺序为依据。二位数组可按行分段赋值,也可以按行连续赋值。
例如对整型数组a[3][3]进行赋值:
按行分段赋值: a[3][3]={ {80,75,92},{61,65,71},{59,63,70} }
按行连续赋值:a[3][3]={ 80,75,92,61,65,71,59,63,70 }
赋值后的二维数组:
3.二维数组元素的引用
二维数组的元素也称为双下标变量,其表示的形式为: 数组名[下标][下标]
例题:输出上面的数组a[3][3]的二维数组矩阵。
#include <stdio.h>
int main(){
int i,j;
int a[3][3]={ {80,75,92},{61,65,71},{59,63,70} };
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%d\t",a[i][j]);
}
printf("\n");
}
}
程序运行结果