数组
一维数组
1.定义:相同类型元素组成的集合。
2.声明方式:数据类型 数组名[常量表达式]
3.举例:int a[3]
4.初始化
int a[3]; //第一种方式
a[0] = 1;
a[1] = 2;
a[2] = 3;
int a[3] = {1, 2, 3}; //第二种方式
int a[5] = {1, 2, 3}; //未赋值,默认为0,即a[3]=0,a[4]=0
int a[] = {1, 2, 3}; //未给出数组长度,但根据数组元素个数可得出数组长度为3
5.一维数组的下标:数组下标实际上是数组关于第一个元素的偏移量。
6.一维数组的遍历:已知一位高中学生7门课程的成绩,求出所有成绩的最高分和最低分。
实现:
#include <stdio.h>
int main()
{
int g[7] = {65, 98, 88, 56, 77, 92, 43};
int min = 100, max = 0;
int i, j;
for(i =0; i < 7; i++)
printf("%d ", g[i]);
printf("\n");
for(j = 0; j < 7; j++)
{
if(g[j] > max)
max = g[j];
else if(g[j] < min)
min = g[j];
}
printf("这位学生成绩的最高分为%d,最低分为%d。\n", max, min);
return 0;
}
结果:
二维数组
1.定义:存储数组的数组。
2.声明方式:数据类型 数组名[常量表达式][常量表达式]
3.举例:int a[3][3]
4.初始化
a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; //分段
a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; //连续
a[][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; //连续省略,只可省略行
5.二维数组的下标:首先表示行,然后表示列。
6.二维数组的遍历:已知三位高中学生语数英3门课程的成绩,找出含有不及格成绩的学生。
实现:
#include <stdio.h>
int main()
{
int g[3][3] = {{99, 100, 59}, {86, 96, 89}, {85, 81, 45}};
int i, j, p, q;
for(i = 0; i < 3; i++)
{
for(j = 0; j < 3; j++)
printf("%3d ", g[i][j]);
printf("\n");
}
for(p = 0; p < 3; p++)
{
for(q = 0; q < 3; q++)
{
if(g[p][q] < 60)
printf("第%d位学生含有不及格的成绩,不及格成绩为%d分。\n", p+1, g[p][q]);
}
}
return 0;
}
结果: