C语言第07章_数组

上传人:xinsh****encai 文档编号:243637374 上传时间:2024-09-27 格式:PPT 页数:72 大小:766KB
返回 下载 相关 举报
C语言第07章_数组_第1页
第1页 / 共72页
C语言第07章_数组_第2页
第2页 / 共72页
C语言第07章_数组_第3页
第3页 / 共72页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第七章,数 组,主要内容,7.1,一维数组的定义和引用,7.2,二维数组的定义和引用,7.3,字符数组,7-1,一维数组的定义和引用,问题,:,有如下几组数据,它们分别该如何存储呢?,是一组具有,相同数据类型,的数据的,有序集合。,数组,这些数据的特点是:,1,、具有相同的数据类型,2,、使用过程中需要保留原始数据,C,语言为这些数据,提供了一种构造数据类型:数组。,一个班学生的学习成绩,一行文字,一个矩阵,1,、一维数组的定义格式为:,类型说明符 数组名常量表达式;,例如:,int,a,10,;,它表示定义了一个整形数组,数组名为,a,,,此数组有,10,个元素。,7.1.1,一维数组的定义,2,、说明:,(,1,),数组名定名规则和变量名相同,遵循标识符定名规则。,(,2,),在定义数组时,需要指定数组中元素的个数,方括弧中的常量表达式用来表示元素的个数,即数组长度。例如,指定,a,10,,,表示,a,数组有,10,个元素,注意下标是从,0,开始的,这,10,个元素是,,a,0,,,a,1,,,a,2,,,a,3,,,a,4,,,a,5,,,a,6,,,a,7,,,a,8,,,a,9,。,特别注意,,按上面的定义,,不存在数组元素,a,10,。,(,3,),常量表达式中可以包括常量和符号常量,但不能包含变量。也就是说,,C,语言,不允许对数组的大小作动态定义,,即数组的大小不依赖于程序运行过程中变量的值。例如,下面这样定义数组是不行的:,举例:,int,n;,scanf(“%d,,, /*,在程序中临时输入数,组的大小 *,/,int,an,;,float a0;/*,数组大小为,0,没有意义 *,/,int,b(2)(3); /*,不能使用圆括号 *,/,int,k, ak;,/*,不能用变量说明数组大小*,/,数组说明中其他常见的错误,3,、,一维数组在内存中的存放,每个数据元素占用的字节数,就是,基类型,的字节数,一个元素占,4,个字节,一维数组:,float,mark100;,mark,0,mark,1,mark,2,mark,3,.,.,.,mark99,86.5,92.0,77.5,52.0,.,.,.,94.0,低地址,高地址,数组名,下标,下标可以是整型常量或整型表达式。例如,:,a0=a5+a7-a2*3,定义数组时用到的“数组名,常量表达式,”,和引用数组元素时用到的“数组名,下标,”,是有区别的。,例如,int,a10;,/*,定义数组,长度为,10,*/,t=a6;,/*,引用,a,数组中,序号为,6,的元素,此时,6,不代表数组长度 *,/,注意,7.1.2,一维数组元素的引用,1,、数组元素的引用方式:,2,、一维数组元素引用的,程序实例,#include ,void main(),int,i,,,a10;,for (i=0; i=0; i-),printf(%d,,,ai,);,printf(n,);,运行结果如下:,9 8 7 6 5 4 3 2 1 0,程序使,a,0,到,a9,的值为,09,,然后按逆序输出。,1,、,对数组元素初始化的实现方法:,(,1,)在定义数组时对数组元素赋以初值。例如,:,int,a,10,=0,,,1,,,2,,,3,,,4,,,5,,,6,,,7,,,8,,,9;,将数组元素的初值依次放在一对花括弧内。经过上面的定义和初始化之后,,a,0,=0,,,a,1,=1,,,a,2,=2,,,a,3,=3,,,a,4,=4,,,a,5,=5,,,a,6,=6,,,a,7,=7,,,a,8,=8,,,a,9,=9,。,7.1.3,一维数组的初始化,(,3,),如果想使一个数组中全部元素值为,0,,,可以写成,int,a,10,=0,,,0,,,0,,,0,,,0,,,0,,,0,,,0,,,0,,,0;,或,inta,10,=0;,不能写成:,int,a,10,=0*10;,这是与,FORTRAN,语言不同的,不能给数组整体赋初值。,(2,),可以只给一部分元素赋值。例如,:,int,a,10,=0,,,1,,,2,,,3,,,4;,定义,a,数组有,10,个元素,但花括弧内只提供,5,个初值,这表示只给前面,5,个元素赋初值,后,5,个元素值为,0,。,(4,),在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。,例如,:,int,a,5,=1,,,2,,,3,,,4,,,5;,也可以写成,int,a,=1,,,2,,,3,,,4,,,5;,在第二种写法中,花括弧中有,5,个数,系统就会据此自动定义,a,数组的长度为,5,。但若数组长度与提供初值的个数不相同,则数组长度不能省略。例如,想定义数组长度为,10,,就不能省略数组长度的定义,而必须写成,int,a,10,=1,,,2,,,3,,,4,,,5;,只初始化前,5,个元素,后,5,个元素为,0,。,程序举例,1,:,用数组来处理,求,解,Fibonacci,数列。,程序实例:,#include ,void main(),int,i;,int,f,20,=1,,,1;,Fibonacci,数列公式:,已知,: a,1,=a,2,=1 a,n,=a,n-1,+a,n-2,即,:1,1,2,3,5,8,13,7.1.4,一维数组程序举例,for(i=2;i20;i+),f,i,=f,i-2,+f,i-1,;,for(i=0;i20;i+),if(i%5=0),printf,(,n);,printf(%12d,,,f,i,),/*For,循环结束*,/,/*,程序结束*,/,运行结果如下:,1 1 2 3 5,8 13 21 34 55,89 144 233 377 610,987 1597 2584 4181 6765,if,语句用来控制换行,每行输出,5,个数据,。,程序举例,2,:,用起泡法对,10,个数排序,(,由小到大,),。,起泡法的思路是:,将相邻两个数比较,将小的调到前头。,第,一,趟,比,较,经过第一趟,(,共,5,次比较与交换,),后,最大的数,9,已“沉底” 。然后进行对余下的前面,5,个数第二趟比较,,注,第,二,趟,比,较,如果有,n,个数,则要进行,n-1,趟比较。在第,1,趟比较中要进行,n-1,次两两比较,在第,j,趟比较中要进行,n-j,次两两比较。,经过第二趟,(,共,4,次比较与交换,),后,得到次大的数,8,。,注,程序流程图如下:,程序实例,7.3,:,#include ,void main(),int,a,10,;,int,i,j,t;,printf(,input,10 numbers :n);,for (i=0;i10;i+),scanf(%d,,,printf(n,);,for(j=0;j9;j+),for(i=0;ia,i+1,),t=ai;ai=ai+1;,a,i+1,=t;,printf(the,sorted numbers :n);,for(i=0;i10;i+),printf(%d,a,i,);,printf(n,);,/*,程序结束*,/,程序运行结果如下:,input 10 numbers:,1 0 4 8 12 65 -76 100 -45 123,the sorted numbers:,-76 -45 0 1 4 8 12 65 100 123,7-2,二维数组的定义和引用,7.2.1,二维数组的定义,二维数组定义的一般形式为,类型说明符,数组名,常量表达式,常量表达式,;,例如:定义,a,为,34(3,行,4,列,),的数组,,b,为,510(5,行,10,列,),的数组。如下:,float a34,,,b510,;,不能写成,float a,3,,,4,,,b,5,,,10,;,注意,我们可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组。,例如,可以把,a,看作是一个一维数组,它有,3,个元素:,a,0,、,a,1,、,a,2,,,每个元素又是一个包含,4,个元素的一维数组。,二维数组中的元素在内存中的排列顺序是:按行存放,即先顺序存放第一行的元素,再存放第二行的元素,一维数组在内存中的存放,下图表示对,a,3,4,数组存放的顺序,地址,值,数组元素,b,00,b,01,b,02,b,10,b,11,b,12,b,20,b,21,b,22,300,0,H,300,2,H,300,4,H,300,6,H,300,8,H,300,A,H,300,C,H,300,E,H,30,10,H,例如:整型数组,b33= 1,2,3, 4,5,6, 7,8,9 ;,1,2,3,4,5,6,789,问题,:有了二维数组的基础,那么,多维数组,如何定义呢?,定义三维数组:,float a,2,3,4,;,多维数组元素在内存中的排列顺序:第一维的下标变化最慢,最右边的下标变化最快。,a000,a001,a002,a003,a010,a011,a012,a013,a020,a021,a022,a023,a100,a101,a102,a103,a110,a111,a112,a113,a120,a121,a122,a123,三维数组的元素排列顺序,二维数组元素的表示形式为:,数组名下标下标,例如:,a,2,3,下标可以是整型表达式,,如,a,2-1,2*2-1,数组元素可以出现在表达式中,也可以被赋值,例如:,b,1,2,=a,2,3,/2,注意,不要写成,a,2,,,3,,,a,2-1,,,2*2-1,形式,7.2.2,二维数组的引用,常出现的错误有:,int,a,3,4,;,/*,定义,a,为,34,的数组 *,/,a,3,4,=3;,在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。,可以用下面,4,种方法对二维数组初始化,数据类型,数组名,常量表达式,1,常量表达式,2,初始化数据,;,(1),分行给二维数组赋初值。,如:,int,a34=1,,,2,,,3,,,4,,,5,,,6,,,7,,,8,,,9,,,10,,,11,,,12;,(2),可以将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。,如:,int,a34=1,,,2,,,3,,,4,,,5,,,6,,,7,,,8,,,9,,,10,,,11,,,12;, 7.2.3,二维数组的初始化,(3),可以对部分元素赋初值。,如,int,a,3,4,=1,,,5,,,9;,1 0 0 0,5 0 0 0,9 0 0 0,也可以对各行中的某一元素赋初值,如,int,a,3,4,=1,,,0,,,6,,,0,,,0,,,11;,1 0 0 0,0 6 0 0,0,0 11 0,1 0 0 0,5 6 0 0,0 0 0 0,也可以只对某几行元素赋初值,。如,:,int,a,3,4,=1,,,5,,,6;,(4),如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。,如:,int,a,3,4,=1,,,2,,,3,,,4,,,5,,,6,,,7,,,8,,,9,,,10,,,11,,,12;,它,等价,于,:,int,a,4,=1,,,2,,,3,,,4,,,5,,,6,,,7,,,8,,,9,,,10,,,11,,,12;,在定义时也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。如:,int,a,4,=0,,,0,,,3,,,,,0,,,10;,0 0 3 0,0 0 0 0,0 10 0 0, 7.2.4,二维数组程序举例,例,7.4,将一个二维数组行和列元素互换,存到另一个,二维数组中。,#include ,void 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+),例如:,a= 1 2 3 1 4,4 5 6 b= 2 5,3 6,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);,/*,程序结束*,/,运行结果如下:,array a:,1 2 3,4 5 6,array b:,1 4,2 5,3,6,例,7.5:,有一个,3,4,的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。,先用,N-S,流程图表示算法,如下:, 7.2.4,二维数组程序举例,程序如下:,#include ,void main(),int,i,,,j,,,row=0,,,colum,=0,,,max;,int,a,3,4,=1,,,2,,,3,,,4,,,9,,,8,,,7,,,6,,,-10,,,10,,,-5,,,2;,max=a,0,0,;,for (i=0;i=2;i+),for (j=0;jmax), max=a,i,j,;,row=i;,colum,=j;,printf(max,=%d,,,row=%d,,,colum,=%d,n,,,max,,,row,,,colum,);,/*,程序结束*,/,7-3,字符数组,用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。,7.3.1,字符数组的定义,定义方法与前面介绍的类似。例如:,char c,10,;,c0=I;c,1,= ;c,2,=a;,c,3,=m;c,4,= ;c5=h;c6=a;,c,7,=p;c,8,=p;c,9,=y;,对字符数组初始化,,最容易理解的方式是逐个字符,赋给数组中各元素。如:,char c10=,I,a,,,m,,,h,,,a,,,p,,,p,,,y,;,如果在定义字符数组时不进行初始化,则数组中各元,素的值是不可预料的。,如果花括弧中提供的初值个数,(,即字符个数,),大于数组,长度,则按语法错误处理。,7.3.2,字符数组的初始化,如果初值个数小于数组长度,则只将这些字符赋给数,组中前面那些元素,其余的元素自动定为空字符,(,即,0),。例如:,char c10=c, ,p,r,o,,g,r,a,m;,如果提供的初值个数与预定的数组长度相同,在定义,时可以省略数组长度,系统会自动根据初值个数确定,数组长度。,例如:,char c,=I, ,a,m, ,h,a,p,p,y;,数组,c,的长度自动定为,10,。,也可以定义和初始化一个二维字符数组。,例如:,char diamond,5,5,= ,,, ,,,*,,, ,,,*,,, ,,,*,,,*,,, ,,, ,,, ,,,*,,, ,,,*,,, ,,,*,,, ,,, ,,,*,7.3.3,字符数组的引用,例,7.6,输,出一个字符串。,程序如下:,#include ,void main(), char c,10,=,I,a,m,a,b,,,o,,,y;,int,i;,for(i=0;i10;i+),printf(%c,,,c,i,);,printf,(,n);,运行结果:,I am a boy,例,7.7,输出一个钻石图形,#include ,void main(), char diamond,5,=, ,,, ,,,*,,,,,*,,, ,,,*,,,*,,, ,,, ,,, ,,,*,,, ,,,*,,, ,,,*,,, ,,, ,,,*,;,int,i,,,j;,for (i=0;i5;i+), for (j=0;j5;j+),printf(%c,,,diamond,i,j,);,printf,(,n);,运行结果,*,* *,* *,* *,*,7.3.3,字符数组的引用,7.3.4,字符串和字符串结束标志,为了测定字符串的实际长度,,C,语言规定了一个“字符串结束标志”,以字符,0,作为标志。,如果有一个字符串,前面,9,个字符都不是空字符,(,即,0),,而第,10,个字符是,0,,则此字符串的有效字符为,9,个。,系统对字符串常量也自动加一个,0,作为结束符。,0,代表,ASCII,码为,0,的字符,从,ASCII,码表中可以查到,,ASCII,码为,0,的字符不是一个可以显示的字符,而是一个,“,空操作符,”,,即它什么也不干。用它来作为字符串结束标志不会产生附加的操作或增加有效字符,只起一个供辨别的标志。,可以用字符串常量来使字符数组初始化。,例如,char c,=I am happy;,也可以省略花括弧,直接写成,char c,=“I am happy,;,它与下面的数组初始化等价,char c,=I,,, ,,,a,,,m,,, ,,,h,,,a,,,p,,,p,,,y,,,0,注意,再,比如,char c,10,=China;,数组,c,的前,5,个元素为,C,,,h,,,i,,,n,,,a,,,第,6,个元素为,0,,,后,4,个元素也设定为空字符。,7.3.4,字符串和字符串结束标志,需要说明的是,:,字符数组并不要求它的最后一个字符为,0,,甚至可以不包含,0,。,例如:,char c,5,=C,,,h,,,i,,,n,,,a;,这样写完全是合法的。但是由于系统对字符串常量自动加一个,0,。因此,人们为了使处理方法一致,在字符数组中也常人为地加上一个,0,。如:,char c,6,=C,,,h,,,i,,,n,,,a,,,0;,这样做,是为了便于引用字符数组中的字符串。,定义了以下的字符数组,char c,=,”,Pascal program,”,;,现在,想用一个新的字符串代替原有的字符串,”,Pascal program,”,,,从键盘向字符数组输入,Hello,如果不加,0,的话,字符数组中的字符如下,Hellol,program,例如,7-3,字符数组,7.3.5,字符数组的输入输出,字符数组的输入输出可以有两种方法:,逐个字符输入输出。用格式符,“,%c,”,输入或输出一个字符。,将整个字符串一次输入或输出。用“,%s”,格式符,意思是对字符串的输入输出。,char c,=China;,printf(%s,,,c);,例如,在内存中数组,c,的状态,用,“,%s,”,格式符输出字符串时,,printf,函数中的输出项是字符数组名,而不是数组元素名。如:写成下面这样是不对的:,printf(%s,,,c,0,);,如果数组长度大于字符串实际长度,也只输出到遇,0,结束。,输出字符不包括结束符,0,。,如:,char c,10,=China; /*,字符串长度为,5,,连,0,共占,6,个字节 *,/,printf(%s,,,c);,只输出字符串的有效字符,“,China,”,,,而不是输出,10,个字符。这就是用字符串结束标志的好处。,说明,(4),如果一个字符数组中包含一个以上,0,,则遇第一个,0,时输出就结束。,可以用,scanf,函数输入一个字符串。,例如,scanf(%s,,,c);,scanf,函数中的输入项,c,是已定义的字符数组名,输入的字符串应短于已定义的字符数组的长度。例如,定义,char c,6,;,从键盘输入:,China,系统自动在,China,后面加一个,0,结束符。,说明,如果利用一个,scanf,函数输入多个字符串,则在输入时以空格分隔。例如:,char,strl,5,,,str2,5,,,str3,5,;,scanf(%s%s%s,,,str1,,,str2,,,str3);,输入数据:,How are you? ,数组中未被赋值的元素的值自动置,0,。,若改为,char,str,13,;,scanf(%s,,,str,);,如果输入以下,12,个字符,How are you?,大家思考一下,str,13,数组中存放的结果会是什么呢?,由于系统把空格字符作为输入的字符串之间的分隔符,因此只将空格前的字符,“,How,”,送到,str,中。由于把,“,How,”,作为一个字符串处理,故在其后加,0,。,分析图中所示的字符数组,用,8,进制形式输出数组,c,的起始地址,printf(%o,,,c);,输出数组,c,的起始地址,2000,。,printf(%s,,,c);,按字符数组名,c,找到其数组起始地址,然后逐个输出其中的字符,直到遇,0,为止。,需要注意:,scanf,函数中的输入项如果,字符数组名,不要再加地址符,&,,因为在,C,语言中,数组名代表该数组的起始地址,。下面写法不对:,scanf(%s,,,&,str,),;,7.3.6,字符串处理函数,在,C,的函数库中提供了一些用来处理字符串的函数,使用方便。几乎所有版本的,C,编译系统都提供这些函数。下面介绍几种常用的函数。,1. puts,函数,其一般形式为,:,puts (,字符数组,),其作用是将一个字符串,(,以,0,结束的字符序列,),输出到终端。假如已定义,str,是一个字符,数组名,且该数组已被初始化为,China,。,则执行,puts(str,),;,其结果是在终端上输出,China,。,由于可以用,printf,函数输出字符串,因此,puts,函数用的不多。,用,puts,函数输出的字符串中可以包含转义字符。例如:,char,str,=China,nBeijing,;,puts(str,);,输出结果,:,China,Beijing,在输出时,将字符串,结束标志,0,转换成,n,,,即输出完字符串后换行。,2. gets,函数,其一般形式为:,gets(,字符数组,),其作用是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。如执行下面的函数:,gets(str,),从键盘输入:,Computer,7.3.6,字符串处理函数,将输入的字符串,Computer,送给字符数组,str,(,请注意送给数组的共有,9,个字符,而不是,8,个字符),函数值为字符数组,str,的起始地址。一般利用,gets,函数的目的是向字符数组输入一个字符串,而不大关心其函数值。,注意:,用,puts,和,gets,函数只能输入或输出一个字符串,不能写成,puts(str1,,,str2),或,gets(str1,,,str2),3.,strcat,函数,其一般形式为,:,strcat,(,字符数组,1,,字符数组,2),Strcat,的作用是连接两个字符数组中的字符串,把字符串,2,接到字符串,1,的后面,结果放在字符数组,1,中,函数调用后得到一个函数值,字符数组,1,的地址。,7.3.6,字符串处理函数,例如:,char str1,30,=Peoples Republic of ;,char str2,=China;,print(%s,,,strcat(str1,,,str2);,输出:,Peoples Republic of China,4.,strcpy,函数,其一般形式为,:,strcpy,(,字符数组,1,,字符串,2),strcpy,是,“,字符串复制函数,”,。作用是将字符串,2,复制到字符数组,1,中去。例如:,char str1,10,,,str2,=China;,strcpy(str1,,,str2);,7.3.6,字符串处理函数,1.,字符数组,1,必须定义得足够大,以便容纳被复制的字符串。字符数组,1,的长度不应小于字符串,2,的长度。,2.,“,字符数组,1,”,必须写成数组名形式,(,如,str1),,,“,字符串,2,”,可以是字符数组名,也可以是一个字符串常量。如,strcpy(str1,,,China,),;,3.,复制时连同字符串后面的,0,一起复制到字符数组,1,中。,4.,可以用,strcpy,函数将字符串,2,中前面若干个字符复制到字符数组,1,中去。例如,:strcpy(str1,,,str2,,,2);,作用是将,str2,中前面,2,个字符复制到,str1,中去,然后再加一个,0,。,5.,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。如下面两行都是不合法的:,str1=China;,str1=str2;,而只能用,strcpy,函数将一个字符串复制到另一个字符数组中去。用赋值语句只能将一个字符赋给一,个字符型变量或字符数组元素。如下面是合法的:,char a,5,,,c1,,,c2;,c1=A; c2=B;,a,0,=C; a,1,=h; a,2,=i;,a,3,=n; a,4,=a;,5.,strcmp,函数,其一般形式为,:,strcmp,(,字符串,1,,字符串,2),strcmp,的作用是比较字符串,1,和字符串,2,。,例如:,strcmp(str1,,,str2);,strcmp(China,,,Korea);,strcmp(str1,,,Beijing);,7.3.6,字符串处理函数,AA,,,computercompare,,,36+54!$&#,,,CHINACANADA,,,DOG,字符串,2,,函数值为一正整数。,(3),如果字符串,1str2),printf(yes,);,而只能用,if(strcmp(str1,,,str2)0),printf(yes,);,6.,strlen,函数,其一般形式为,:,strlen,(,字符数组,),strlen,是,测试字符串长度的函数。函数的值为字符串中的实际长度,(,不包括,0,在内,),。,如:,char,str,10,=China;,printf(%d,,,strlen(str,);,输出结果不是,10,,也不是,6,,而是,5,。也可以直接测试字符串常量的长度,如,strlen(,China,),;,7.3.6,字符串处理函数,7.,strlwr,函数,其一般形式为,:,strlwr,(,字符串,),strlwr,函数的作用是将字符串中大写字母换成小写字母。,8.,strupr,函数,其一般形式为,:,strupr,(,字符串,),strupr,函数的作用是将字符串中小写字母换成大写字母。,以上介绍了常用的,8,种字符串处理函数,应当再次强调:库函数并非,C,语言本身的组成部分,而是,C,编译系统为方便用户使用而提供的公共函数。不同的编译系统提供的函数数量和函数名、函数功能都不尽相同,使用时要小心,必要时查一下库函数手册。,7.3.6,字符串处理函数,例,7 .8,输入一行字符,统计其中有多少个单词,单,词之间用空格分隔开。,7.3.7,字符数组应用举例,程序如下:,#include ,void main(),char string,81,;,int,i,,,num=0,,,word=0;,char c;,gets(string,);,for (i=0;(c=string,i,)!=,0;i+),if(c= ) word=0;,else if(word=0), word=1;,num+;,printf(There,are %d words in the,line.,n,,,num);,运行情况如下:,I am a boy.,There are 4 words in the line.,例,7.9,有,3,个字符串,要求找出其中最大者,程序如下,:,#include,#include,void main ( ),char string,20,;,char,str,3,20,;,int,i;,for (i=0;i0),strcpy(string,str,0,),else,strcpy(string,str,1,);,if (,strcmp(str,2,string)0),strcpy(string,str,2,);,printf,(,nthe,largest string is,n%s,n,string);,运行结果如下,:,CHINA,HOLLAND,AMERICA,the largest string is,HOLLAND,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!