一维数组
数组可以存储一个固定大小的相同类型元素的顺序集合。
同一数组中存储的数必须满足以下两个条件:
①这些数的类型必须相同。
②这些数在内存中必须是连续存储的。
声明数组和和初始化数组
在 C 中要声明一个数组,需要指定元素的类型和元素的数量。您可以逐个初始化数组,也可以使用一个初始化语句。
【】为数组运算符,框起来的部分代表数组中的元素,这里的元素就是变量的意思;数组中元素的个数又称数组的长度。
通过给每个元素进行编号来进行区分,数组元素的编号又叫下标。数组中的下标是从 0 开始的(而不是 1)。
输出hige[4]的结果是1.5,此时输出的只是其中的元素high[4],从下标数依次为,0.1.2.3.4,结果为1.5,而不是1.4。
输出high[5]则超过了元素的范围,此时输出的只是元素high[5],而非float high[5]。
全部数组元素赋初值时,可不指定数组长度。
二维数组
二维数组能够有效的解决行(column)和列(row)的队列数据处理,二维数组也称矩阵。
初始化二维数组
定义的形式一般为:
(存储类型)数据类型 +数组名+【常量表达式】【常量表达式】
定义一部分元素时,系统会自动给0,
定义为0,元素都是0,
关于数组的练习需要熟练使用for循环。例:利用for循环嵌套,通过随机数产生二维数组,求两个数组的交集,交集保存到另外的数组。(初学者😅代码比较臃肿,没有省略for的括号,目的是为了更好的理解各个for循环之间的关系,出现BUG时也可以方便修改,过于冗长的表达后续会继续优化)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int arr_01[5]={0};
int arr_02[5]={0};
int arr_03[5]={0};
int i,j;
srand((unsigned)time(NULL));
for(i=0;i<5;i++)
{
arr_01[i]=rand()%10+1;
arr_02[i]=rand()%10+1;
}
printf("arr_01的数据为\n");
for(i=0;i<5;i++)
{
printf("arr_01[%d]=%d \n",i,arr_01[i]);
}
printf("\n");
printf("arr_02的数据为\n");
for(i=0;i<5;i++)
{
printf("arr_02[%d]=%d \n",i,arr_02[i]);
}
printf("\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(arr_01[i]==arr_02[j])
{
arr_03[i]=arr_01[i];
}
}
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i!=j)
{
if(arr_03[i]==arr_03[j])
arr_03[j]=0;
}
}
}
printf("arr_01与arr_02的交集为=");
for(i=0;i<5;i++)
{
if(arr_03[i]!=0)
printf("%d,",arr_03[i]);
}
return 0;
}
顺带练习一下打印