六、数组

数组
一次性定义多个相同类型的数据

1.数组定义和使用格式

类型 数组名[数组大小];
数组大小不写 定义的时候必须给初值 数组大小由给的元素个数撑开
数组[下标] []下标运算符
int brr[]={1,2,3,4,5,6};//

赋值方式

直接赋值:
int brr[10]={1,2,3,4,5,6};//超出的长度用0来补齐


//错误写法
crr[20]={1,2,3,45}; 20是数组的下标 下标为20的数组不存在 使用这样的数组越界

间接赋值:
for(int j=0;j<20;++j)
scanf("%d",brr[i]);

数组名[下标]; 下标 就是给数组元素的编号(从0开始)

存放100个分数 --->float
float score[100];
score可以存放100个float类型的值

下标从0开始 第20个score[20]

案例一:斐波那契数列
1 1 2 3 5 8
每个数字是前两个数字之和

1 int Fa[20]={1,1};//计算数列的值
2 int m;
3 for(m=2;m<20;m++)
4 {
5 Fa[m]=Fa[m-1]+Fa[m-2];
6 printf("%d	",Fa[m]);
7 }

一维数组和二维数组
int arr[10];

int doubArr[4][10];
前面的下标是行 后面的下标是列
4行10列的二维数组

存放4行 每行存10个int 总共40行
doubArr[2][3] 行下标是2 列下标是3的这个元素

有四名学生 每个学生有三门成绩

float stuScore[4][3];
int i,j;
for(i=0;i<4;++i)
{
for(j=0;j<3;j++)
{
printf("%f",stuScore[i][j]);
}
printf("
");
}

数组和循环的搭配
一维数组 一重循环
二维数组 二重循环(外圈是行 内圈是列)


不建议定义数组的时候省略数组大小
数组大小定义的时候 必须是整型常量
数组大小不可以包含变量

案列二:杨辉三角
第几行就有几个数组
最左和最右的数字都是1
中间的数字是斜上方两个数字之和

m*n的二维数组
每一行都是n个元素

 1 int map[10][10];
 2 int i,j;
 3 for(i=0;i<10;++i)
 4 {
 5 for(j=0;j<=i;++j)
 6 {
 7 if(j==0||j==i)
 8 {
 9 map[i][j]=1;
10 }
11 else
12 {
13 map[i][j]=map[i-1][j]+map[i-1][j-1];
14 }
15 }
16 }
17 
18 for(i=0;i<10;++i)
19 {
20 for(j=0;j<10-i;++j)
21 {
22 printf(" ");
23 }
24 for(j=0;j<=i;++j)
25 {
26 printf("%3d ",map[i][j]);
27 }
28 printf("
");
29 }
原文地址:https://www.cnblogs.com/liugangjiayou/p/11743782.html