C语言数组的应用C语言一维数组的定义和引用(一)维数组的界说和引证在程序设计中,为了处置便利,把具有一样类型的若干变量按有序的办法组织起来。这些按序摆放的同类数据元素的调集称为数组。在C言语中,数组归于布局数据类型。一个数组能够分化为多个数组元素,这些数组元素能够是根本数据类型或是布局类型。因而按数组元素的类型不一样,数组又可分为数值数组、字符数组、指针数组、布局数组等各种种类。本章介绍数值数组和字符数组,其他的在今后各章接连介绍。7.1一维数组的界说和引证7.1.1一维数组的界说办法在C言语中运用数组有必要先进行界说。一维数组的界说办法为:类型阐明符数组名[常量表达式];其间:类型阐明符是任一种根本数据类型或布局数据类型。数组名是用户界说的数组标识符。方括号中的常量表达式表明数据元素的个数,也称为数组的长度。例如:int a[10];阐明整型数组a,有10个元素。float b[10],c[20];阐明实型数组b,有10个元素,实型数组c,有20个元素。char ch[20];阐明字符数组ch,有20个元素。关于数组类型阐明应注意以下几点:数组的类型实践上是指数组元素的取值类型。关于同一个数组,其一切元素的数据类型都是一样的。数组名的书写规则应契合标识符的书写规则。数组名不能与其它变量名一样。例如:main(){int a;float a[10];……}是过错的。方括号中常量表达式表明数组元素的个数,如a[5]表明数组a有5个元素。可是其下标从0开端核算。因而5个元素别离为a[0],a[1],a[2],a[3],a[4]。不能在方括号顶用变量来表明元素的个数,可是能够是符号常数或常量表达式。例如:#define FD 5main(){int a[3+2],b[7+FD];……}是合法的。可是下述阐明办法是过错的。main(){int n=5;int a[n];……}答应在同一个类型阐明中,阐明多个数组和多个变量。例如:int a,b,c,d,k1[10],k2[20];7.1.2一维数组元素的引证数组元素是组成数组的根本单元。数组元素也是一种变量,其标识办法为数组名后跟一个下标。下标表明晰元素在数组中的次序号。数组元素的一般办法为:数组名[下标]其间下标只能为整型常量或整型表达式。如为小数时,C编译将主动取整。例如:a[5]a[i+j]a[i++]都是合法的数组元素。数组元素一般也称为下标变量。有必要先界说数组,才干运用下标变量。在C言语中只能逐一地运用下标变量,而不能一次引证整个数组。例如,输出有10个元素的数组有必要运用循环句子逐一输出各下标变量:for(i=0; i<10; i++)printf("%d",a[i]);而不能用一个句子输出整个数组。下面的写法是过错的:printf("%d",a);【例7.1】main(){int i,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)printf("%d ",a[i]);}【例7.2】main(){int i,a[10];for(i=0;i<10;)a[i++]=i;for(i=9;i>=0;i--)printf("%d",a[i]);}【例7.3】main(){int i,a[10];for(i=0;i<10;)a[i++]=2*i+1;for(i=0;i<=9;i++)printf("%d ",a[i]);printf("\n%d %d\n",a[5.2],a[5.8]);}本例顶用一个循环句子给a数组各元素送入奇数值,然后用第二个循环句子输出各个奇数。在榜首个for句子中,表达式3省掉了。在下标变量中运用了表达式i++,用以修正循环变量。当然第二个for句子也能够这样作,C言语答运用表达式表明下标。程序中最终一个printf句子输出了两次a[5]的值,能够看出当下标不为整数时将主动取整。7.1.3一维数组的初始化给数组赋值的办法除了用赋值句子对数组元素逐一赋值外,还可选用初始化赋值和动态赋值的办法。数组初始化赋值是指在数组界说时给数组元素赋予初值。数组初始化是在编译期间进行的。这样将削减运转时刻,进步功率。初始化赋值的一般办法为:类型阐明符数组名[常量表达式]={值,值……值};其间在{ }中的各数据值即为各元素的初值,各值之间用逗号距离。例如:int a[10]={ 0,1,2,3,4,5,6,7,8,9 };相当于a[0]=0;a[1]=1...a[9]=9;C言语对数组的初始化赋值还有以下几点规则:能够只给有些元素赋初值。当{ }中值的个数少于元素个数时,只给前面有些元素赋值。例如:int a[10]={0,1,2,3,4};表明只给a[0]~a[4]5个元素赋值,然后5个元素主动赋0值。只能给元素逐一赋值,不能给数组全体赋值。例如给十个元素悉数赋1值,只能写为:int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:int a[10]=1;如给悉数元素赋值,则在数组阐明中,能够不给出数组元素的个数。例如:int a[5]={1,2,3,4,5};可写为:int a[]={1,2,3,4,5};7.1.4一维数组程序举例能够在程序履行过程中,对数组作动态赋值。这时可用循环句子合作scanf函数逐一对数组元素赋值。【例7.4】main(){int i,max,a[10];printf("input 10 numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];for(i=1;i<10;i++)if(a[i]>max) max=a[i];printf("maxmum=%d\n",max);}本例程序中榜首个for句子逐一输入10个数到数组a中。然后把a[0]送入max中。在第二个for句子中,从a[1]到a[9]逐一与max中的内容对比,若比max的值大,则把该下标变量送入max中,因而max总是在已对比过的下标变量中为最大者。对比完毕,输出max的值。【例7.5】main(){int i,j,p,q,s,a[10];printf("\n input 10 numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++){p=i;q=a[i];for(j=i+1;j<10;j++)if(qif(i!=p){s=a[i];a[i]=a[p];a[p]=s; }printf("%d",a[i]);}}本例程序顶用了两个并排的for循环句子,在第二个for句子中又嵌套了一个循环句子。榜首个for句子用于输入10个元素的初值。第二个for句子用于排序。本程序的排序选用逐一对比的办法进行。在i次循环时,把榜首个元素的下标i赋于p,而把该下标变量值a[i]赋于q。然后进入小循环,从a[i+1]起到最终一个元素止逐一与a[i]作对比,有比a[i]大者则将其下标送p,元素值送q。一次循环完毕后,p即为最大元素的下标,q则为该元素值。若此刻i≠p,阐明p,q值均已不是进入小循环之前所赋之值,则交流a[i]和a[p]之值。此刻a[i]为已排序完毕的元素。输出该值之后转入下一次循环。对i+1今后各个元素排序。(二)二维数组的界说和引证前面介绍的数组只要一个下标,称为一维数组,其数组元素也称为单下标变量。在实践问题中有很多量是二维的或多维的,因而C言语答应布局多维数组。多维数组元素有多个下标,以标识它在数组中的方位,所以也称为多下标变量。本末节只介绍二维数组,多维数组可由二维数组类比而得到。二维数组界说的一般办法是:类型阐明符数组名[常量表达式1][常量表达式2]其间常量表达式1表明榜首维下标的长度,常量表达式2表明第二维下标的长度。例如:int a[3][4];阐明晰一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即:a[0][0],a[0][1],a[0][2],a[0][3]a[1][0],a[1][1],a[1][2],a[1][3]a[2][0],a[2][1],a[2][2],a[2][3]二维数组在概念上是二维的,便是说其下标在两个方向上改变,下标变量在数组中的方位也处于一个平面之中,而不是象一维数组仅仅一个向量。可是,实践的硬件存储器却是接连编址的,也即是说存储器单元是按一维线性摆放的。如安在一维存储器中寄存二维数组,可有两种办法:一种是按行摆放,即放完一行之后依次放入第二行。另一种是按列摆放,即放完一列之后再依次放入第二列。在C言语中,二维数组是按行摆放的。即,先寄存a[0]行,再寄存a[1]行,最终寄存a[2]行。每行中有四个元素也是依次寄存。因为数组a阐明为int类型,该类型占两个字节的内存空间,所以每个元素均占有两个字节)。7.1.2二维数组元素的引证二维数组的元素也称为双下标变量,其表明的办法为:数组名[下标][下标]其间下标应为整型常量或整型表达式。例如:a[3][4]表明a数组三行四列的元素。下标变量和数组阐明在办法中有些类似,但这两者具有彻底不一样的意义。数组阐明的方括号中给出的是某一维的长度,即可取下标的最大值;而数组元素中的下标是该元素在数组中的方位标识。前者只能是常量,后者能够是常量,变量或表达式。【例7.6】一个学习小组有5自己,每自己有三门课的考试成果。求全组分科的均匀成果和各科总均匀成果。张王李赵周Math 80 61 59 85 76C 75 65 63 87 77Foxpro 92 71 70 90 85可设一个二维数组a[5][3]寄存五自己三门课的成果。再设一个一维数组v[3]寄存所求得各分科均匀成果,设变量average为全组各科总均匀成果。编程如下:main(){int i,j,s=0,average,v[3],a[5][3];printf("input score\n");for(i=0;i<3;i++){for(j=0;j<5;j++){ scanf("%d",&a[j][i]);s=s+a[j][i];}v[i]=s/5;s=0;}average =(v[0]+v[1]+v[2])/3;printf("math:%d\nc languag:%d\ndbase:%d\n",v[0],v[1],v[2]);printf("total:%d\n", average );}程序中首要用了一个两层循环。在内循环中依次读入某一门课程的各个学生的成果,并把这些成果累加起来,退出内循环后再把该累加成果除以5送入v[i]之中,这即是该门课程的均匀成果。外循环共循环三次,别离求出三门课各自的均匀成果并寄存在v数组之中。退出外循环之后,把v[0],v[1],v[2]相加除以3即得到各科总均匀成果。最终按题意输出各个成果。7.1.3二维数组的初始化二维数组初始化也是在类型阐明时给各下标变量赋以初值。二维数组可按行分段赋值,也可按行接连赋值。例如对数组a[5][3]:按行分段赋值可写为:int a[5][3]={ {80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85} };按行接连赋值可写为:int a[5][3]={ 80,75,92,61,65,71,59,63,70,85,87,90,76,77,85};这两种赋初值的成果是彻底一样的。【例7.7】main(){int i,j,s=0, average,v[3];int a[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}};for(i=0;i<3;i++){ for(j=0;j<5;j++)s=s+a[j][i];v[i]=s/5;s=0;}average=(v[0]+v[1]+v[2])/3;printf("math:%d\nc languag:%d\ndFoxpro:%d\n",v[0],v[1],v[2]);printf("total:%d\n", average);}关于二维数组初始化赋值还有以下阐明:能够只对有些元素赋初值,未赋初值的元素主动取0值。例如:int a[3][3]={{1},{2},{3}};是对每一行的榜首列元素赋值,未赋值的元素取0值。赋值后各元素的值为:1 0 02 0 03 0 0int a [3][3]={{0,1},{0,0,2},{3}};赋值后的元素值为:0 1 00 0 23 0 0如对悉数元素赋初值,则榜首维的长度能够不给出。例如:int a[3][3]={1,2,3,4,5,6,7,8,9};能够写为:int a[][3]={1,2,3,4,5,6,7,8,9};数组是一种布局类型的数据。二维数组能够看作是由一维数组的嵌套而构成的。设一维数组的每个元素都又是一个数组,就组成了二维数组。当然,条件是各元素类型有必要一样。依据这样的剖析,一个二维数组也能够分化为多个一维数组。C言语答应这种分化。如二维数组a[3][4],可分化为三个一维数组,其数组名别离为:a[0]a[1]a[2]对这三个一维数组不需另作阐明即可运用。这三个一维数组都有4个元素,例如:一维数组a[0]的元素为a[0][0],a[0][1],a[0][2],a[0][3]。有必要着重的是,a[0],a[1],a[2]不能当作下标变量运用,它们是数组名,不是一个单纯的下标变量。(三)字符数组的运用用来寄存字符量的数组称为字符数组。7.1.1字符数组的界说办法与前面介绍的数值数组一样。例如:char c[10];因为字符型和整型通用,也能够界说为int c[10]但这时每个数组元素占2个字节的内存单元。字符数组也能够是二维或多维数组。例如:char c[5][10];即为二维字符数组。7.1.2字符数组的初始化字符数组也答应在界说时作初始化赋值。例如:char c[10]={‘c’, ‘’, ‘p’, ‘r’, ‘o’, ‘g’, ‘r’, ‘a’,’m’};赋值后各元素的值为:数组Cc[0]的值为‘c’c[1]的值为‘’c[2]的值为‘p’c[3]的值为‘r’c[4]的值为‘0’c[5]的值为‘g’c[6]的值为‘r’c[7]的值为‘a’c[8]的值为‘m’其间c[9]未赋值,由的值为‘p’体系主动赋予0值。当对全体元素赋初值时也能够省去长度阐明。例如:char c[]={`c`,` `,`p`,`r`,`o`,`g`,`r`,`a`,`m`};这时C数组的长度主动定为9。7.1.3字符数组的引证【例7.8】main(){int i,j;char a[][5]={{'B','A','S','I','C',},{'d','B','A','S','E'}};for(i=0;i<=1;i++){for(j=0;j<=4;j++)printf("%c",a[i][j]);printf("\n");}}本例的二维字符数组因为在初始化时悉数元素都赋以初值,因而一维下标的长度能够不加以阐明。7.1.4字符串和字符串完毕象征在C言语中没有专门的字符串变量,一般用一个字符数组来寄存一个字符串。前面介绍字符串常量时,已阐明字符串总是以'\0'作为串的完毕符。因而当把一个字符串存入一个数组时,也把完毕符'\0'存入数组,并以此作为该字符串是不是完毕的象征。有了'\0'象征后,就不用再用字符数组的长度来判别字符串的长度了。C言语答运用字符串的办法对数组作初始化赋值。例如:char c[]={'c', ' ','p','r','o','g','r','a','m'};可写为:char c[]={"C program"};或去掉{}写为:char c[]="C program";用字符串办法赋值比用字符逐一赋值要多占一个字节,用于寄存字符串完毕象征'\0'。上面的数组c在内存中的实践寄存状况为:Cp r o g r a m \0‘\0'是由C编译体系主动加上的。因为选用了‘\0'象征,所以在用字符串赋初值时一般无须指定数组的长度,而由体系自行处置。7.1.5字符数组的输入输出在选用字符串办法后,字符数组的输入输出将变得简略便利。除了上述用字符串赋初值的办法外,还可用printf函数和scanf函数一次性输出输入一个字符数组中的字符串,而不用运用循环句子逐一地输入输出每个字符。【例7.9】main(){char c[]="BASIC\ndBASE";printf("%s\n",c);}注意在本例的printf函数中,运用的格局字符串为“%s”,表明输出的是一个字符串。而在输出表列中给出数组名则可。不能写为:printf("%s",c[]);【例7.10】main(){char st[15];printf("input string:\n");scanf("%s",st);printf("%s\n",st);}本例中因为界说数组长度为15,因而输入的字符串长度有必要小于15,以留出一个字节用于寄存字符串完毕象征`\0`。大概阐明的是,对一个字符数组,若是不作初始化赋值,则有必要阐明数组长度。还大概特别注意的是,当用scanf函数输入字符串时,字符串中不能富含空格,不然将以空格作为串的完毕符。例如当输入的字符串中富含空格时,运转状况为:input string:this is a book输出为:this从输出成果能够看出空格今后的字符都未能输出。为了防止这种状况,可多设几个字符数组分段寄存含空格的串。程序可改写如下:【例7.11】main(){char st1[6],st2[6],st3[6],st4[6];printf("input string:\n");scanf("%s%s%s%s",st1,st2,st3,st4);printf("%s %s %s %s\n",st1,st2,st3,st4);}本程序别离设了四个数组,输入的一行字符的空格分段别离装入四个数组。然后别离输出这四个数组中的字符串。在前面介绍过,scanf的各输入项有必要以地址办法呈现,如&a,&b等。但在前例中却是以数组名办法呈现的,这是为何呢?这是因为在C言语中规则,数组名就代表了该数组的首地址。整个数组是以首地址最初的一块接连的内存单元。如有字符数组char c[10],在内存可表明如图。C[0] C[1] C[2] C[3] C[4] C[5] C[6] C[7] C[8] C[9]设数组c的首地址为2000,也即是说c[0]单元地址为2000。则数组名c就代表这个首地址。因而在c前面不能再加地址运算符&。如写作scanf("%s",&c);则是过错的。在履行函数printf("%s",c)时,按数组名c找到首地址,然后逐一输出数组中各个字符直到遇到字符串停止象征'\0'停止。7.1.6字符串处置函数C言语供给了丰厚的字符串处置函数,大致可分为字符串的输入、输出、兼并、修正、对比、变换、仿制、查找几类。运用这些函数可大大减轻编程的担负。用于输入输出的字符串函数,在运用前应包括头文件"stdio.h",运用其它字符串函数则应包括头文件"string.h"。下面介绍几个最常用的字符串函数。字符串输出函数puts格局:puts (字符数组名)功用:把字符数组中的字符串输出到显现器。即在屏幕上显现该字符串。【例7.12】#include"stdio.h"main(){char c[]="BASIC\ndBASE";puts(c);}从程序中能够看出puts函数中能够运用转义字符,因而输出成果变成两行。puts函数彻底能够由printf函数替代。当需要按必定格局输出时,一般运用printf函数。字符串输入函数gets格局:gets(字符数组名)功用:从规范输入设备键盘上输入一个字符串。本函数得到一个函数值,即为该字符数组的首地址。【例7.13】#include"stdio.h"main(){char st[15];printf("input string:\n");gets(st);puts(st);}能够看出当输入的字符串中富含空格时,输出仍为悉数字符串。阐明gets函数并不以空格作为字符串输入完毕的象征,而只以回车作为输入完毕。这是与scanf函数不一样的。字符串衔接函数strcat格局:strcat (字符数组名1,字符数组名2)功用:把字符数组2中的字符串衔接到字符数组1中字符串的后边,并删去字符串1后的串象征“\0”。本函数回来值是字符数组1的首地址。【例7.14】#include"string.h"main(){static char st1[30]="My name is ";int st2[10];printf("input your name:\n");gets(st2);strcat(st1,st2);puts(st1);}本程序把初始化赋值的字符数组与动态赋值的字符串衔接起来。要注意的是,字符数组1应界说满足的长度,不然不能悉数装入被衔接的字符串。字符串复制函数strcpy格局:strcpy (字符数组名1,字符数组名2)功用:把字符数组2中的字符串复制到字符数组1中。串完毕象征“\0”也一起复制。字符数名2,也能够是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。【例7.15】#include"string.h"main(){char st1[15],st2[]="C Language";strcpy(st1,st2);puts(st1);printf("\n");}本函数需求字符数组1应有满足的长度,不然不能悉数装入所复制的字符串。字符串对比函数strcmp格局:strcmp(字符数组名1,字符数组名2)功用:依照ASCII码次序对比两个数组中的字符串,并由函数回来值回来对比成果。字符串1=字符串2,回来值=0;字符串2〉字符串2,回来值〉0;字符串1〈字符串2,回来值〈0。本函数也可用于对比两个字符串常量,或对比数组和字符串常量。【例7.16】#include"string.h"main(){ int k;static char st1[15],st2[]="C Language";printf("input a string:\n");gets(st1);k=strcmp(st1,st2);if(k==0) printf("st1=st2\n");if(k>0) printf("st1>st2\n");if(k<0) printf("st1 }本程序中把输入的字符串和数组st2中的串对比,对比成果回来到k中,依据k值再输出成果提示串。当输入为dbase时,由ASCII码可知“dBASE”大于“C Language”故k〉0,输出成果“st1>st2”。测字符串长度函数strlen格局:strlen(字符数组名)功用:测字符串的实践长度(不含字符串完毕象征‘\0’)并作为函数回来值。【例7.17】#include"string.h"main(){ int k;static char st[]="C language";k=strlen(st);printf("The lenth of the string is %d\n",k);(四)数组程序举例把一个整数按巨细次序刺进已排好序的数组中。为了把一个数按巨细刺进已排好序的数组中,应首要断定排序是从大到小仍是从小到大进行的。设排序是从大到小进序的,则可把欲刺进的数与数组中各数逐一对比,当找到榜首个比刺进数小的元素i时,该元素之前即为刺进方位。然后从数组最终一个元素开端到该元素停止,逐一后移一个单元。最终把刺进数赋予元素i即可。若是被刺进数比一切的元素值都小则刺进最终方位。main(){int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};for(i=0;i<10;i++){ p=i;q=a[i];for(j=i+1;j<10;j++)if(qif(p!=i){s=a[i];a[i]=a[p];a[p]=s;}printf("%d ",a[i]);}printf("\ninput number:\n");scanf("%d",&n);for(i=0;i<10;i++)if(n>a[i]){for(s=9;s>=i;s--) a[s+1]=a[s];break;}a[i]=n;for(i=0;i<=10;i++)printf("%d ",a[i]);printf("\n");}本程序首要对数组a中的10个数从大到小排序并输出排序成果。然后输入要刺进的整数n。再用一个for句子把n和数组元素逐一对比,若是发现有n>a[i]时,则由一个内循环把i以下各元素值依次后移一个单元。后移应从后向前进行(从a[9]开端到a[i]停止)。后移完毕跳出外循环。刺进点为i,把n赋予a[i]即可。如一切的元素均大于被刺进数,则并未进行过后移作业。此刻i=10,成果是把n赋于a[10]。最终一个循环输出刺进数后的数组各元素值。程序运转时,输入数47。从成果中能够看出47已刺进到54和28之间。【例7.19】在二维数组a中选出各行最大的元素组成一个一维数组b。a=( 316 8765432 11 10810 25 1237)b=(87 108 37)本题的编程思路是,在数组A的每一行中寻觅最大的元素,找到之后把该值赋予数组B相应的元素即可。程序如下:main(){int a[][4]={3,16,87,65,4,32,11,108,10,25,12,27};int b[3],i,j,l;for(i=0;i<=2;i++){ l=a[i][0];for(j=1;j<=3;j++)if(a[i][j]>l) l=a[i][j];b[i]=l;}printf("\narray a:\n");for(i=0;i<=2;i++){ for(j=0;j<=3;j++)printf("%5d",a[i][j]);printf("\n");}printf("\narray b:\n");for(i=0;i<=2;i++)printf("%5d",b[i]);printf("\n");}程序中榜首个for句子中又嵌套了一个for句子组成了两层循环。外循环操控逐行处置,并把每行的第0列元素赋予l。进入内循环后,把l与后边各列元素对比,并把比l大者赋予l。内循环完毕时l即为该行最大的元素,然后把l值赋予b[i]。等外循环悉数完结时,数组b中已装入了a各行中的最大值。后边的两个for句子别离输出数组a和数组b。【例7.20】输入五个国家的称号按字母次序摆放输出。本题编程思路如下:五个国家名应由一个二维字符数组来处置。但是C言语规则能够把一个二维数组当成多个一维数组处置。因而本题又能够按五个一维数组处置,而每一个一维数组即是一个国家名字符串。用字符串对比函数对比各一维数组的巨细,并排序,输出成果即可。编程如下:main(){char st[20],cs[5][20];int i,j,p;printf("input country's name:\n");for(i=0;i<5;i++)gets(cs[i]);printf("\n");for(i=0;i<5;i++){ p=i;strcpy(st,cs[i]);for(j=i+1;j<5;j++)if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}if(p!=i){strcpy(st,cs[i]);strcpy(cs[i],cs[p]);strcpy(cs[p],st);}puts(cs[i]);}printf("\n");}本程序的榜首个for句子中,用gets函数输入五个国家名字符串。上面说过C言语答应把一个二维数组按多个一维数组处置,本程序阐明cs[5][20]为二维字符数组,可分为五个一维数组cs[0],cs[1],cs[2],cs[3],cs[4]。因而在gets函数中运用cs[i]是合法的。在第二个for句子中又嵌套了一个for句子组成两层循环。这个两层循环完结按字母次序排序的作业。在外层循环中把字符数组cs[i]中的国名字符串复制到数组st中,并把下标i赋予P。进入内层循环后,把st与cs[i]今后的各字符串作对比,若有比st小者则把该字符串复制到st中,并把其下标赋予p。内循环完结后如p不等于i阐明有比cs[i]更小的字符串呈现,因而交流cs[i]和st的内容。至此已断定了数组cs的第i号元素的排序值。然后输出该字符串。在外循环悉数完结之后即完结悉数排序和输出。(五)数组运用小结数组是程序设计中最常用的数据布局。1、数组可分为数值数组(整数组,实数组),字符数组以及后边即将介绍的指针数组,布局数组等。2、数组能够是一维的,二维的或多维的。3、数组类型阐明由类型阐明符、数组名、数组长度(数组元素个数)三有些组成。数组元素又称为下标变量。数组的类型是指下标变量取值的类型。4、对数组的赋值能够用数组初始化赋值,输入函数动态赋值和赋值句子赋值三种办法完成。对数值数组不能用赋值句子全体赋值、输入或输出,而有必要用循环句子逐一对数组元素进行操作。
上一篇:LED显示屏如何杜绝火灾隐患
下一篇:安防监控系统的构成有哪些?