第五单元数组专项

本文详细介绍了数组的概念,包括一维数组的定义、赋值规则,二维数组的结构与赋值方法,以及字符数组的特性与操作。强调了数组元素的下标使用、整体赋值的注意事项,并提到了字符串处理的相关函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

               数组专项总结及心得体会

定义:数组是有序的并且具有相同类型的数据的集合。
一维数组
1、一般形式:类型说明符数组名[常量表达式;例如:inta[10];元素为a–a[9]2、常量表达式中不允许包含变量,可以包含常量或符号常量。3、数组元素下标可以是任何整型常量、整型变量或任何整型表达式。4、可以对数组元素赋值,数组元素也可以参与运算,与简单变量一样使用。5、使用数值型数组时,不可以一次引用整个数组,只能逐个引用元素。6、需要整体赋值时只可以在定义的同时整体赋值。如inta[10]={0,1,2,3,4,5,6,7,8,9}正确。
inta[10]a[10]={0,1,2,3,4,5,6,7,89};错误。
7、可以只给一部分元素赋值。
例如:
inta[10]={5,8,7,6;后面没有赋值的元素值默
认为0
8、对全部数组元素赋值时可以不指定数组
长度,
例如:
inta[10]={0,1,2,3,4,5,7,8,9};可以写成int a={0,1,2,3,4,5,6,7,8,9}
但是,既不赋初值,也不指定长度是错误
的。例如:int a;错误。
二维数组
1、一般形式:类型说明符数组名[常量表
达式1常量表达式2];例如:

inta[3][4]可以看成是包含3个一维数组,每
个一维数组里包含4个元素。一共3*4=12个
元素。所有元素为a[][a[o][1],a[][2],a[0][3]
a[1a[1],a[1][2],a[13]a[2][oa[2]1,a[2][2],a[2][3]
2、与一维数组一样元素下标可以是是任何整型常量、整型变量或任何整型表达式。
3、需要整体赋值时只可以在定义的同时整体赋值。例如:inta[3]4]=1,2,3,45,6,7,89,10,11,12}正确。inta[3][4];a[34]=1,2,3,4,5,6,7,8}{910,11,12}错误。
4、可以把所有数据写在一个花括号内。例如:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};正确。inta[3][4]=15)9};其余未赋值的元素默
认为0
inta[3][4]={15,6;可以看成是inta[3][4]=
{1,0,0,0,5,6,0,0,0,0,0,0}};
对全部数组元素赋值时可以省略第一维
长度,第二维不可以省略。例如:
a[3][4]={1,2,3,45,6,7,8}{9,10,11,12}};
可以写成a[4]={{1,2,3,4}5,6,7,8}
{9,10,11,12}}
或者a[4]={1,2,3,4,5,6,7,8,9,10,11,12};
字符数组
1、定义: char[10];字符数组a长度为10
每个元素只能存放一个字符。例如:
a[]=ha[1=a’a[2]=p
2、初始化:
char={h’, a",", p",y’);5、可以只对部分元素赋值。例如: char al=“happy”;
char={happy"};注意,因为字符串结尾
自动加,所以char al=“happy”;长度为6,
不是5。
3、C语言中没有字符串变量,字符串的输
入、存储、处理和输出等必须通过字符数
组实现。
4、字符串的输入。
scanf;可以用%C逐个字符输入比如char
a[6]; for(=0;i<6;i++) scanf("%c",&a[);
可以用%S以字符串的形式输入,比如char
a[6]scanf(%s",a);注意,a前不用加&,因
为a是数组名,已经代表了数组首地址。
注意:以%S输入时,以第一个非空白字符
开始,终止于第一个空白字符。比如:输
入 How are you时。只输出How.
gets(:作用为输入一个字符串。与 scanf
功能一致,但空格和回车都存放在数组中,最后自动加入10不会出现上面输出不
全的情况。调用方式为:gets(数组名);需要包含头文件“stdio.h".
5、字符串的输出。 printf;可以使用%C逐个字符输出,比如: char a[6]; for(=;<6;++) printf("%c",a[)可以用%S以字符串的形式输出,比如char a[6];printf("%s",a);puts(:输出一个字符串,结尾自动换行。调用形式:puts(字符数组名或字符串常量)需包含头文件"stdio.h常用字符串处理函数(以下函数需要头文件string.h)
1、 strlen(作用是测试字符串长度。这里不包括0使用形式 strlen(数组名或字符串常量)
2、 strcat(作用是连接两个字符串。调用方strcat(字符数组1名,字符数组2名);合并后的字符串存放在符数组1中。
3、 strcmp比较两个字符串是否相等。调用方式strcmp(字符串1,字符串2);相等时值为0。1>2时为正数。1<2时为负数。
4、 strcpy复制字符串。调用方式 strcpy(字符数组1,字符串2);2的内容复制到1中。1只能是字符数组名。
例子:1.将两个升序数列合并为一个升序数列(在一个升序数列中插入若干个数)
#include <stdio.h> int main(){ int a[100],i,j,c=0,h,b; for(i=0;i<5;i++) scanf("%d",&a[i]); scanf("%d",&b); while(b!=-1) { a[i]=b; scanf("%d",&b); c++; //可以得到输入数组的个数 i++; } for(i=0;i<c+4;i++) //冒泡排序法 { for(j=0;j<c+4;j++) { if(a[j]>a[j+1]) { h=a[j]; a[j]=a[j+1]; a[j+1]=h; } } } for(i=0;i<c+5;i++) printf("%d ",a[i]); return 0;}
数组是规则化依次排列的同类量的集合,对于数组操作也就是对于一群同类型数据操作,需要结合循环进行规则化数组元素操作,做题时要理清思路,找好规律,选好类型方式。对于自己拿到一个新题后放应慢,还是不够熟练要多加练习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值