快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

【C语言---------数组】-创新互联

数组的定义和使用
  • 怎么定义一维数组
    • 一维数组的初始化
      • 怎么引用一维数组
  • 案例
    • 对五个元素依次赋值1-5,要求逆序输出
    • 用数组来处理Fibonnacci数列问题
  • 怎么定义二维数组
    • 二维数组的初始化
    • 怎么引用二维数组
  • 案例
    • 输出一个二维数组
    • 数组行和列的元素互换,存到另外一个二维数组中
  • 数组作为函数参数

创新互联-专业网站定制、快速模板网站建设、高性价比九原网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式九原网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖九原地区。费用合理售后完善,十载实体公司更值得信赖。怎么定义一维数组

要使用数组必须在程序中先定义数组,告诉计算机:由哪些数据组成数组,数组中有多少元素,属于什么数据类型,否则计算机不会自动识别一批数据,以下是对于数组的定义:

int a[10]; //表示定义了一个整型数组,数组名为a,此数组包含十个整型元素。
一维数组定义一般形式为: 类型说明符 数组名[常量表达式];
注:一维数组是指只有一个下标的数组,它用来表示一组具有相同类型的数据,数据类型几乎包含了所有类型,比如:int,float,char,指针,结构体等类型。

一维数组的初始化

定义数组必须要进行初始化,如若不初始化系统并不会自动初始化为0,因为局部变量处于堆栈区,数值则为随机。例如:

int a[10]; //例如这样,程序并不会报错。

常见的几种初始化

第一种
int a[5]={0}; // 即将第一个元素初始化为0,系统则会将剩余的元素自动初始化为0;
如若初始化为 int a[5]={1};//则是将第一个元素初始化为1,其它则为0,其它数也是如此。

第二种
int a[5]={1,2,3,4,5}; //直接对数组所有元素进行初始化,

第三种
int a[5]={1,2,3}; //即对部分元素进行初始化,其余未进行初始化的元素系统自动初始化为0。

第四种
int a[]={1,2,3,4,5}; //为数组全部元素进行初始化,但不指定数组长度,这时候数组的大小由初始化时列表元素个数决定,即数组长度为5。

注:数组的命名同变量的命名规则一样:

变量命名规则:
1,变量名只能由字母,数字,下划线组成,且必须以字母或下划线开头。
2,不能包含空格,标点符号以及运算符等其它在c语言中有特殊意义的符号。

怎么引用一维数组

在定义数组并且对它进行其中的元素赋值以后,就可以引用数组中的元素,但是只能引用数组元素,而不能一次性调用数组全部元素,在程序中,想引用数组的某一个元素可以通过数组名和下标来引用数组中的元素。一般格式为

假设定义一个数组 a[5]={1,2,3,4,5};
引用的一般格式为:数组名[下标];
如若要引用第一个元素:a[0];//就可以调用1这个元素了。
注:数组的下标默认从0开始,上面的数组下标依次为0,1,2,3,4,在访问数组元素时,下标不能超出这个范围。
若要将数组整体输出有两种方法:

第一种
#includeint main()
{int i;
	int a[5]={1,2,3,4,5};
	printf("%d %d %d %d %d", a[0], a[1], a[2], a[3], a[4]);//printf整体输出
	return 0;
}
第二种
#includeint main()
{int i;
	int a[5]={1,2,3,4,5};
	for (i = 0; i< 5; i++) //循环依次进行输出
	{printf("%d ", a[i]);
	}
	return 0;
}

注:数组之间不能进行比较,也不能进行运算。

案例 对五个元素依次赋值1-5,要求逆序输出
#includeint main()
{int i;
	int a[5] = {1,2,3,4,5 };  //对数组初始化
	for (i = 4; i>= 0; i--)    // 大下标为4,每进行一次循环,i的值减1,直到i=0
	{printf("%d ", a[i]);
	}
	return 0;
}
用数组来处理Fibonnacci数列问题

题目介绍:裴波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233即这个数列从第3项开始,每一项都等于前两项之和。注:每五个要进行一次换行

#includeint main()
{int i;
	int f[20] = {1,1 };//因为从第三个开始,先将第一个和第二个元素初始化为1
	for (i = 2; i<= 20; i++)
	{f[i] = f[i - 2] + f[i - 1];  //i从2开始,即第三个数开始,每一项都等于前两项的和
	}
	for (i = 0; i< 20; i++)
	{if (i % 5 == 0)     //能被5整
		{	printf("\n");   //进行换行
		}
		printf("%10d", f[i]);   //在循环内输出fibonacci数列
	}
	return 0;
}
怎么定义二维数组

二维数组的定义与一维数组类似,其语法格式为:

类型说明符 数组名[常量表达式][常量表达式];//前者表达式表示行宽,后者表示列宽。
int a[2][3]; //表示定义一个行宽为2,列宽为3的整型二维数组。

二维数组的初始化

第一种
按行直接进行赋值 int a[2][3]={{1,2,3},{4,5,6}};
括号内的第一个括号代表的是第一行数组的元素,第二个括号代表第二行数组的元素;

第二种
将所有元素写在一个括号内 int a[2][3]={1,2,3,4,5,6};
和第一种一样,第一行的元素为1,2,3 第二行的元素为4,5,6 输出结果为以下,用循环输出时,记得在外循环进行换行
1 2 3
4 5 6

第三种
对数组的部分元素进行赋值 int a[2][3]={{1},{1}}; //定义部分元素,其它元素为0;输出结果为;
1 0 0
1 0 0

第四种
对数组进行初始化时行宽表达式可以省略 int a[][3]={1,2,3,4,5,6};
行宽会根据列宽以及元素自动识别
注:列宽不能省略。

怎么引用二维数组

二维数组引用的表示形式为
数组名 [下标][下标]
和一维数组一样,二维数组的下标默认从0开始。
数组元素可以出现在表达式中,也可以被赋值,例如

#includeint main()
{int i, j;
	int a[2][3] = {1,2,3,4,5,6 }; //定义两个二维数组
	int b[2][3] = {6,5,4,3,2,1 };
	b[1][2] = a[1][2];     //原本b[1][2]应该等于1,这里将a[1][2]的值赋给b[1][2],a[1][2]的值为6
	printf("%d", b[1][2]);  //输出则为6
	return 0;
}
案例 输出一个二维数组
#includeint main()
{int i, j;
	int a[2][3] = {1,2,3,4,5,6 }; //定义一个二行三列的数组
	for (i = 0; i< 2; i++)     //i运行两次
	{for (j = 0; j< 3; j++)  //i为0时j运行三次,即输出下标为0,1,2的数组
		{	printf("%d ", a[i][j]);
		}
		printf("\n");     //当输出1,2,3d第一列时换行
	}
	return 0;
}
数组行和列的元素互换,存到另外一个二维数组中

题目要求:将一个二维数组行和列的元素互换
解题思路:定义两个数组,数组a为2行3列,数组b为3行2列,将数组a[i][j]元素和数组b[j][i]
的元素进行交换。

#includeint main()
{int a[2][3] = {{1,2,3},{4,5,6} };
	int i, j;
	int b[3][3];  //定义两个数组,进行交换元素互换
	printf("数组a的元素为\n");
	for (i = 0; i< 2; i++)
	{for (j = 0; j< 3; j++)
		{	printf("%5d", a[i][j]);    //先输出a数组
			b[j][i] = a[i][j];         //将行和列进行交换  
		}
		printf("\n");
	}
	printf("数组b的元素为\n");
	for (i = 0; i< 3; i++)
	{for (j = 0; j<= 1; j++)
		{	printf("%5d", b[i][j]);      //再输出数组b
		}
		printf("\n");
	}
	return 0;
}
数组作为函数参数

注:当用数组名作为函数参数时,传递的并不是数组中的每一个元素的值,而是将实参数组的首地址赋值给形参,形参数组取得该首地址后相当于有了实参的数组,实际上实参和形参为同一个数组,因此当行参数组发生变化时,实参数组也随之变化。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻标题:【C语言---------数组】-创新互联
本文来源:http://6mz.cn/article/coegeg.html

其他资讯