- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 数组
在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一维数组的定义
定义: 数组名[常量表达式]注意1)、数组名的命名规则和符的命名规则相同。
2)、常量表达式要有方括号括起来,不能用圆括号3)、常量表达式表示数组元素的个数,即数组长度并且数组的第一个元素是从下标0开始的!
4)、常量表达式可以是常量也可以是符号常量,不能包含变量允许在同一个类型说明中说明多个数组和变量;例int a,b,c,d[10],e[5];
2、一维数组元素的初始化在定义数组时对数组元素赋初值例如int a[10]={0,1,2,3,4,5,6,7,8,9};
b、可以只给一部分元素赋初值例如int a[10]={0,1,2,3,4},表示只给数组的前5个元素赋初值,后5 个元素的值,系统自动默认为0在对全部数组元素赋初值时可以不指定数组长度例如int a[]={0,1,2,3,4};
注意:
(1)、“{}”中的值不能超过数组元素的个数。
(2)、可以用“,”表示对应位置的元素为0,如:int a[100]={1,2,3,,,7,8,18,,,67}。
3、一维数组的引用C语言规定: 数组必须先定义,后使用!只能逐个引用数组元素而不能一次引用整个数组数组名[下标]其中下标可以是整型常量也可以是整型表达式例如a[0]=a[5]+a[7]+a[2*3]
4、一维数组的输入和输出
for (i=0;i10;i++)
{ scanf(%d,a[i]);
printf(“%d’,a[i]);}
5、一维数组的应用举例:输入10个数,对其进行从小到大排序
main()
{ int a[10],i,j,t;
for(i=0;i10;i++)/*输入*/
scanf(%d,a[i]);
printf(\n);
for(j=1;j=9;j++) /*排序*/
for(i=0;i=9-1 ;i++)
if(a[i]a[i+1])
{t=a[i]; a[i]=a[i+1]; a[i+1]=t;}
for(i=0;i10;i++) /*输出*/
printf(%d ,a[i]);
void main()
{ int a[11],i,j,k,x;
for(i=1;i11;i++)
scanf(%d,a[i]);
for(i=1;i10;i++)
{ k=i;
for(j=i+1;j=10;j++)
if(a[j]a[k]) k=j;
if(i!=k)
{ x=a[i]; a[i]=a[k]; a[k]=x;}}
for(i=1;i11;i++)
printf(%d ,a[i]);冒泡法排序法:
(1)、比较第一个数与第二个数,若a[0]a[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上。
(2)、对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置。
(3)、重复上述过程,共经过n-1趟冒泡排序后,排序结束。
选择法排序法:
(1)二维数组的定义
数组名[常量表达式1][常量表达式2]
通常把“常量表达式1表示第一维下标的长度表达式2表示第二维下标的长度二维数组可以看成一种特殊的一维数组,此一维数组中每个元素又都是一个一维数组。如二维数组a[2][3]可以看作一个一维数组,它有2个元素:a[0]、a[1],每个元素又有3个元素:a[0][1] a[0][2] a[0][3],a[1][1] a[1][2] a[1][3]
二维数组元素在内存中是按行存放的,即先顺序存完第一行的元素,再顺序存放第二行的元素······
2、二维数组的引用引用形式:数组名[下标][下标]
其中下标应该为整型常量或整型表达式注意:下标变量和数组说明在形式上有些相似但这两者具有完全不同的含义数组说明的方括号中给出的是某一维的长度而数组元素中的下标是该元素在数组中的位置标识数组说明中的方括号内只能是常量而数组元素中方括号中的下标可以是常量变量或表达式二维数组的初始化
int a[2][3],i,j;
for (i=0;i2;i++)
for(j=0;j3;j++)
scanf(“%d”,a[i][j]);
for (i=0;i2;i++)
for(j=0;j3;j++)
printf(“%d”,a[i][j]);
三、字符数组
1、字符数组的定义如果初值个数小于数组长度则只将这些字符赋给前面的元素其余的元素自动定为空字符(‘\0’)比如char c[5]={‘a’,’b’,’c’}; 结
文档评论(0)