目录
一维数组
定义
当我我们存储3个学生的数学成绩的时候,可以定义3个浮点型变量进行存储。当我们要定义40个学生的数学成绩的时候我们可以定义40个浮点型变量进行存储。但是这样很繁琐,且不能很好反应这些数据具有相同的属性。因此我们可以通过数组对有一组数据类型相同的有限数据进行存储。
数组的定义(如下图示):
标识符的命名规则(如下图示):
引用
当我们定义数组并且赋值了之后,就可以引用数组中的元素了,但是引用的是数组中的一个元素,不能是整个数组的全部元素的值。
初始化
例子
下面通过两个例子,对一维数组的学习进行一定的巩固。
例1:通过数组类存储斐波那契数列(前20位)
#include<stdio.h>
int main()
{
int i = 0;
int fibonacci[20] = { 1,1 };//对前面两个数赋初值1,1.为赋值的为0.
for (i = 2; i < 20; i++)
{
fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2];
}
for (i = 0; i < 20; i++)
{
printf("%12d ", fibonacci[i]);
}
return 0;
}
例2:冒泡排序
#include<stdio.h>
int main()
{
int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
int zs = sizeof(arr) / sizeof(arr[0]);//计算数组元素的个数
for (int i = 0; i < zs - 1; i++)
{
for (int j = 0; j < zs - 1 - i; j++)
{
if (arr[j] > arr[j + 1]) //进行一次冒泡排序
{
int tem = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tem;
}
}
}
for (int i = 0; i < zs ; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
二维数组
定义
在军训的时候,我们通常会以排位单位,一个排又会分为各个班。若要存储每个班每个人的数据,使用二维数组会比较方便。第一维用来表示各个班,第二位表示第几个队员。
二维数组的定义如下所示:
引用
二维数组的引用与一位数组类似,具体见下图:
初始化
例子
1.矩阵的转置
#include<stdio.h>
int main()
{
int arr1[2][3] = { 1,2,3,4,5,6 };
int arr2[3][2] = { 0 };
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
arr2[j][i] = arr1[i][j];
}
}
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++)
{
printf("%d ",arr2[i][j]);
}
printf("\n");
}
return 0;
}
2.求3×4的矩阵中的最大值,并且求出行号和列号
#include <stdio.h>
int main()
{
int arr[3][4] = { {1,2,3,4}, {5,6,7,8}, {10,-1,-2,-3} };
int max = arr[0][0];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 4; j++)
{
if (arr[i][j] > max)
{
max =arr[i][j];
}
}
}
printf("%d", max);
return 0;
}