六、利用数组处理批量数据

定义和引用一维数组

  1. 数组是一组有序数据的集合
  2. 用一个数组名和下标来唯一确定数组中的元素
  3. 数组中的每一个元素都属于同一个数据类型

定义一维数组的一般形式:

类型说明符 数组名[常量表达式];
int a[10];
表示a数组有10个元素 a[0]-a[9],下标从0开始;

在定义数组并对其中各元素赋值后,就可以引用数组中的元素

只能引用数组元素而不能一次整体调用整个数组全部元素的值

引用数组元素的表达形式:

数组名[下标]

eg:t=a[6];

eg:对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出

#include <stdio.h>
int main() {
	int i, a[10];
	for (i = 0; i <= 9; i++)
	{
		a[i] = i;
	}
	for (i=9; i >= 0; i--)
		printf("%d ", a[i]);
	printf("\n");
	return 0;
}

 

一维数组的初始化

为使程序简洁,常在定义数组的同时给各数组元素赋值,这称为数组的初始化

(1)在定义数组时对全部数组元素赋予初值
int a[10]={0,1,2,3,4,5,6,7,8,9};
(2)给一部分元素赋值
int a[10]={0,1,2,3,4};//系统自动给后五个赋值0
(3)使一个数组全部元素为0;
用(1)或
int a[10]={0};
(4)在对全部数组元素赋初值时,由于数据的个数已经确定,可不指定数组长度
int []={1,2,3,4,5};

 一维数组举例:求Fibonacci数列的前20个数。数列特点:第1,2两个数为1,1;从第三个数开始,该数是前两个数的和即1,1,2,3,5,8...

#include <stdio.h>
int main() {
	int i;
	int f[20] = { 1,1 };
	for (i = 2; i <= 19; i++)
	{
		f[i] = f[i - 2] + f[i - 1];
	}
	for (i = 0; i <= 19; i++)
	{
		if (i % 5 == 0)
			printf("\n");
		printf("%12d", f[i]);
	}
	return 0;
}

怎么定义和引用二维数组

二维数组常称为矩阵

定义二维数组

类型说明符 数组名[常量表达式][常量表达式];
eg://定义a为3*4的数组,b为5*10的数组
float a[3][4] b[5][10];

//定义三维数组:
float a[1][3][4];//两页,3行,4列

二维数组的初始化

(1)分行给二维数组赋初值

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

 (2)可以将所有数据写在一个花括号内,按数组元素在内存中的排列顺序对各元素赋初值

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

 (3)对部分元素赋初值

int a[3][4]={{1},{5},{9}};

 (4)如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维数组的长度不能省

int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};

eg:将一个二维数组的行和列的元素互换

#include <stdio.h>
int main() {
	int a[2][3] = { {1,2,3},{4,5,6} };
	int b[3][2], i, j;
	printf("array a:\n");
	for (i = 0; i <= 1; i++)
	{
		for (j = 0; j <= 2; j++)
		{
			printf("%5d", a[i][j]);
			b[j][i] = a[i][j];
		}
		printf("\n");
	}
	printf("array b:\n");
	for (i = 0; i <= 2; i++)
	{
		for (j = 0; j <= 1; j++)
		{
			printf("%5d", b[i][j]);
		}
		printf("\n");
	}

	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值