1、武汉工程职业技术学院武汉工程职业技术学院第六章第六章 数组数组武汉工程职业技术学院武汉工程职业技术学院2 2第六章第六章 数组数组教学目标:教学目标:教学重点与难点:教学重点与难点:武汉工程职业技术学院武汉工程职业技术学院3 36.1 一维数组一维数组 如果一个数组的所有元素都不是数组,那么该数组称如果一个数组的所有元素都不是数组,那么该数组称为一维数组。为一维数组。C C语言规定:语言规定:数组必须先定义,后使用。数组必须先定义,后使用。6.1.16.1.1一维数组的定义:一维数组的定义:1.1.一维数组的定义形式为:一维数组的定义形式为:类型说明符类型说明符 数组名数组名 整型常量表达式整
2、型常量表达式;例如:需要定义一个数组表示例如:需要定义一个数组表示4 4门课的成绩门课的成绩 float score4 float score4;它表示定义了一个名为它表示定义了一个名为scorescore的数组,该数组有的数组,该数组有4 4个元个元素,其存放的数据的类型应为实型(素,其存放的数据的类型应为实型(floatfloat)。)。武汉工程职业技术学院武汉工程职业技术学院4 46.1.1 一维数组的定义一维数组的定义说明:说明:(1)(1)类型说明符:用来说明数组元素的类型,可以是类型说明符:用来说明数组元素的类型,可以是int,int,char,float char,float 或
3、或doubledouble等。等。(2 2)数组名:数组名的命名应遵守标识符的命名规则。)数组名:数组名的命名应遵守标识符的命名规则。(3 3)整型常量表达式:表示的是数组元素的个数,即数组)整型常量表达式:表示的是数组元素的个数,即数组的长度。可以是正整型常量或符号常量,不允许用变量。的长度。可以是正整型常量或符号常量,不允许用变量。武汉工程职业技术学院武汉工程职业技术学院5 56.1.1 一维数组的定义:一维数组的定义:例如:下列定义是正确的:例如:下列定义是正确的:#define M 100#define M 100int a10;/int a10;/*说明整型数组说明整型数组a a,有
4、,有1010个元素个元素 */float bM;/float bM;/*说明实型数组说明实型数组b b,有,有100100个元素个元素*/char ch10;/char ch10;/*说明字符数组说明字符数组chch,有,有1010个元素个元素 */下列定义是错误的:下列定义是错误的:int m=10;int m=10;float am;/float am;/*不能使用变量定义数组的长度不能使用变量定义数组的长度*/int b-10int b-10;/*不能使用负数定义数组的长度不能使用负数定义数组的长度*/char c(10);/char c(10);/*不能使用()定义数组不能使用()定义
5、数组*/武汉工程职业技术学院武汉工程职业技术学院6 6(4 4)数组中每个变量的表示形式:)数组中每个变量的表示形式:数组名数组名 下标下标。其下标从其下标从0 0开始到整型常量表达式开始到整型常量表达式-1-1结束。结束。上例中定义了数组上例中定义了数组score4score4,该数组有,该数组有4 4个元素(变量),个元素(变量),分别是分别是score0score0、score1score1、score2score2、score3score3。注意:注意:不要使用不要使用score4,score4,因为它不是该数组的元素。因为它不是该数组的元素。(5 5)编译程序为数组分配了一片连续的存
6、储空间。)编译程序为数组分配了一片连续的存储空间。C C语言还规定,语言还规定,数组名是数组的首地址。数组名是数组的首地址。即即score=&score0score=&score0。数组元素在内存中占用一片连续的存储空间,这一片连续的数组元素在内存中占用一片连续的存储空间,这一片连续的 存储空存储空间的首地址就可以用数组名表示。间的首地址就可以用数组名表示。6.1.1 一维数组的定义:一维数组的定义:武汉工程职业技术学院武汉工程职业技术学院7 7 数组的初始化是指在定义数组时给数组元素赋初值。数组的初始化是指在定义数组时给数组元素赋初值。一维数组初始化的形式为:一维数组初始化的形式为:类型说明
7、符类型说明符 数组名数组名 整型常量表达式整型常量表达式=常量列表常量列表;说明:说明:(1 1)常量列表可以是数值型常量、字符常量或字符串。)常量列表可以是数值型常量、字符常量或字符串。(2 2)数组元素的初值必须依次放在一对大括号内,各值之间用)数组元素的初值必须依次放在一对大括号内,各值之间用逗号隔开。逗号隔开。例如:例如:int a5=1,2,3,4,5;int a5=1,2,3,4,5;其作用是在定义数组的同时将常量其作用是在定义数组的同时将常量1 1、2 2、3 3、4 4、5 5分别赋分别赋给数组元素给数组元素a0a0、a1a1、a2a2、a3a3、a4a4。6.1.2 一维数组
8、的初始化一维数组的初始化武汉工程职业技术学院武汉工程职业技术学院8 8数组初始化常见的几种形式:数组初始化常见的几种形式:(1 1)对数组所有元素赋初值,此时数组定义中数组长度可以省对数组所有元素赋初值,此时数组定义中数组长度可以省略。略。例如:例如:intint a5=1,2,3,4,5;a5=1,2,3,4,5;或或int a=1,2,3,4,5;int a=1,2,3,4,5;(2 2)对数组部分元素赋初值,此时数组长度不能省略。)对数组部分元素赋初值,此时数组长度不能省略。例如:例如:int a5=1,2int a5=1,2;a0=1,a1=2,a0=1,a1=2,其余元素为编译系统指
9、定的默认值其余元素为编译系统指定的默认值0 0。6.1.2 一维数组的初始化一维数组的初始化武汉工程职业技术学院武汉工程职业技术学院9 9(3 3)对数组的所有元素赋初值)对数组的所有元素赋初值0 0。例如:例如:int a5=0int a5=0;(4 4)定义数组时不进行初始化,则该数组元素的值是不确定的)定义数组时不进行初始化,则该数组元素的值是不确定的。如果欲将数组所有元素的初值置为。如果欲将数组所有元素的初值置为0 0,可以采用如下方式:,可以采用如下方式:static int a10static int a10;/*staticstatic为静态存储类型为静态存储类型*/(5 5)在
10、进行数组的初始化时,)在进行数组的初始化时,中值的个数不能超过数组元中值的个数不能超过数组元素的个数。素的个数。例如:例如:int a5=1,2,3,4,5,6,7,8int a5=1,2,3,4,5,6,7,8;这是一种错误的数组初始化方式,在实际应用中需要大家注意这是一种错误的数组初始化方式,在实际应用中需要大家注意6.1.2 一维数组的初始化一维数组的初始化武汉工程职业技术学院武汉工程职业技术学院10101 1、数组元素的表示形式、数组元素的表示形式 C C语言规定,语言规定,对于数组不能整体操作,只能逐个元素的对于数组不能整体操作,只能逐个元素的进行操作。进行操作。每个数组元素的表示形
11、式是:每个数组元素的表示形式是:数组名数组名 下标表达式下标表达式 注意:注意:下标表达式可以是整型常量、整型变量或整型表达式。下标表达式可以是整型常量、整型变量或整型表达式。其取值范围是其取值范围是00元素个数元素个数-1-1;例如:例如:int a5int a5,i;i;表示表示a a数组元素可以表示形式为数组元素可以表示形式为a0a0、aiai、ai-1ai-1、ai+1ai+1、a4a4等。等。i i的取值为的取值为04046.1.3 一维数组的输入与输出一维数组的输入与输出武汉工程职业技术学院武汉工程职业技术学院11116.1.3 一维数组的输入与输出一维数组的输入与输出【例例6.1
12、6.1】给一个整型数组中的元素赋值。给一个整型数组中的元素赋值。程序如下:程序如下:#includevoid main()int a10;int i;for(i=0;i10;i+)ai=i;/*分别将分别将09赋给数组元素赋给数组元素*/printf(%d ,ai);/*输出数组元素输出数组元素*/程序运行结果:程序运行结果:0 1 2 3 4 5 6 7 8 9 武汉工程职业技术学院武汉工程职业技术学院12122 2、数组元素的输入、数组元素的输入 数组表示的并不是一个变量,而是一组变量,因而,不能数组表示的并不是一个变量,而是一组变量,因而,不能直直接将整个数组输入,而是接将整个数组输入,
13、而是要逐个数组元素输入要逐个数组元素输入,通常用循环结,通常用循环结构来完成这一功能。构来完成这一功能。如:如:int i,a10;int i,a10;for for(i=0 i 10 i+i=0 i 10 i+)scanf(“%d”,&ai);/scanf(“%d”,&ai);/*从键盘输入数组元素的值从键盘输入数组元素的值*/6.1.3 一维数组的输入与输出一维数组的输入与输出武汉工程职业技术学院武汉工程职业技术学院13136.1.3 一维数组的输入与输出一维数组的输入与输出3 3、数组元素的输出、数组元素的输出 和数组元素的输入相同,数组元素的输出也不能由一个和数组元素的输入相同,数组元
14、素的输出也不能由一个printfprintf语句直接完成。同样要逐个数组元素输出。通常也用循语句直接完成。同样要逐个数组元素输出。通常也用循环结构来完成:环结构来完成:for for(i=0i=0;i 10 i 10;i+i+)printf(“%dprintf(“%d,”,ai)ai);/*数组元素之间用逗号分隔数组元素之间用逗号分隔*/武汉工程职业技术学院武汉工程职业技术学院14146.1.4 一维数组的应用一维数组的应用【例例6.26.2】通过键盘输入一个班有通过键盘输入一个班有8080个同学的成绩,并打印输出,要求每行个同学的成绩,并打印输出,要求每行输出输出1010个学生的成绩。个学生
15、的成绩。程序如下:程序如下:#include stdio.h#include stdio.h#define M 80 /#define M 80 /*M M是符号常量,代表是符号常量,代表8080*/void main()void main()int i;int i;int scoreM;int scoreM;/*定义数组用来存放成绩定义数组用来存放成绩*/printf(printf(请输入请输入%d%d学生的成绩:学生的成绩:,M);,M);for(i=0;iM;i+)/for(i=0;iM;i+)/*输入成绩输入成绩*/scanf(%d,&scorei);scanf(%d,&scorei)
16、;for(i=0;iM;i+)/for(i=0;iM;i+)/*输出成绩输出成绩*/printf(%5d,scorei);printf(%5d,scorei);if(i+1)%10=0)printf(n);/if(i+1)%10=0)printf(n);/*输出输出1010个数据换行个数据换行*/武汉工程职业技术学院武汉工程职业技术学院1515【例例6.36.3】一个班有一个班有3030个同学,通过键盘输入成绩,并进行以下处理:个同学,通过键盘输入成绩,并进行以下处理:(1)(1)求平均成绩;求平均成绩;(2)(2)求成绩的最高分和最低分,并记住对应元素的下标;求成绩的最高分和最低分,并记住对
17、应元素的下标;6.1.4 一维数组的应用一维数组的应用程序如下:程序如下:#include stdio.h#define M 30main()int i,max,min;float scoreM;/*定义定义30个元素的数组个元素的数组*/float average,s=0;max=min=0;printf(请输入请输入%d个学生的成绩:个学生的成绩:,M);for(i=0;iM;i+)scanf(%f,&scorei);/*输入成绩输入成绩*/s=s+scorei;/*计算成绩的和计算成绩的和*/武汉工程职业技术学院武汉工程职业技术学院16166.1.4 一维数组的应用一维数组的应用 ave
18、rage=s/M;/*计算平均分计算平均分*/printf(%个学生的平均分为:个学生的平均分为:%.1f,average);/*输出平均分输出平均分*/for(i=0;iscoremax)max=i;/*将高分的下标赋给将高分的下标赋给max*/if(scoreiscoremin)min=i;/*将低分的下标赋给将低分的下标赋给min*/printf(最高分是最高分是:%f,下标为:,下标为:%dn,scoremax,max);printf(最低分是:最低分是:%f,下标为:下标为:%dn,scoremin,min);武汉工程职业技术学院武汉工程职业技术学院1717 一维数组通常用来表示数据
19、的线性关系,如全班学生一门课程的成绩。如果要保存全班学生一维数组通常用来表示数据的线性关系,如全班学生一门课程的成绩。如果要保存全班学生4 4门课的成绩,像这门课的成绩,像这种二维数据关系就需要二维数组。种二维数据关系就需要二维数组。数组的维数是指数组的下标个数,一维数组元素只有一个下标,二维数组元素有数组的维数是指数组的下标个数,一维数组元素只有一个下标,二维数组元素有两个下标。两个下标。二维数组的应用之一是矩阵和行列式。与一维数组相同,二维数组也必须先定义,后使用。二维数组的应用之一是矩阵和行列式。与一维数组相同,二维数组也必须先定义,后使用。6.2 二维数组二维数组武汉工程职业技术学院武
20、汉工程职业技术学院1818二维数组的定义形式为:二维数组的定义形式为:类型说明符类型说明符 数组名整常量表达式数组名整常量表达式1 1整常量表达式整常量表达式2 2 说明:说明:其中常量表达式其中常量表达式1 1表示第一维下标的长度,也表示行数;表示第一维下标的长度,也表示行数;常量表达式常量表达式2 2 表示第二维下标的长度,表示列数。表示第二维下标的长度,表示列数。例:例:int a32;int a32;该语句表示:该语句表示:(1 1)定义了整型二维数组)定义了整型二维数组a a,其数组元素的类型都是整型;,其数组元素的类型都是整型;(2 2)a a数组有数组有3 3行行2 2列,共列,
21、共3 3*2=62=6个数组元素;个数组元素;a00,a01 a00,a01 a10,a11 a10,a11 a20,a21 a20,a216.2.1 二维数组的定义二维数组的定义武汉工程职业技术学院武汉工程职业技术学院1919 引用的形式:引用的形式:数组名数组名 下标下标1 1 下标下标22 注意:注意:(1 1)一定把两个下标分别放在两个方括号内;一定把两个下标分别放在两个方括号内;两个下标不能越界,应小于定义的行、列数。两个下标不能越界,应小于定义的行、列数。(2 2)下标下标1 1、下标、下标2 2可以是常量,变量或表达式。可以是常量,变量或表达式。如:如:int a32,i,j;i
22、nt a32,i,j;aij:aij:表示第表示第i i行第行第j j列的元素,表示该元素在数组中的位置。列的元素,表示该元素在数组中的位置。i i的取值为的取值为0 02 2,j j的取值为的取值为0 01 1。6.2.2 二维数组的引用二维数组的引用武汉工程职业技术学院武汉工程职业技术学院2020 对二维数组的输入输出与一维数组一样,只能对单个元素对二维数组的输入输出与一维数组一样,只能对单个元素进行,进行,一般采用二层循环一般采用二层循环。外层循环处理各行;内层循环处理。外层循环处理各行;内层循环处理一行的各列元素。一行的各列元素。如:如:#define M 3#define M 3#d
23、efine N 2#define N 2int aMN;int aMN;for(i=0;iM;i+)for(i=0;iM;i+)for(j=0;jN;j+)for(j=0;jN;j+)6.2.3 二维数组的输入与输出二维数组的输入与输出武汉工程职业技术学院武汉工程职业技术学院2121【例【例6.46.4】从键盘输入】从键盘输入5 5个学生个学生3 3门课程成绩,并输出。门课程成绩,并输出。程序如下:程序如下:#include#include#define M 5 /#define M 5 /*表示表示5 5个学生个学生*/#define N 3 /#define N 3 /*表示表示3 3门课
24、程门课程*/void main()void main()int aMN;int aMN;int i,j;int i,j;printf(printf(请输入请输入%d%d个学生个学生%d%d门课程的成绩:门课程的成绩:,M,N);,M,N);for(i=0;iM;i+)/for(i=0;iM;i+)/*输入成绩输入成绩*/for(j=0;jN;j+)for(j=0;jN;j+)scanf(%d,&aij);scanf(%d,&aij);for(i=0;iM;i+)/for(i=0;iM;i+)/*输出成绩输出成绩*/for(j=0;jN;j+)for(j=0;jN;j+)printf(%d,ai
25、j);printf(%d,aij);printf(n);/printf(n);/*换行换行*/6.2.3 二维数组的输入与输出二维数组的输入与输出武汉工程职业技术学院武汉工程职业技术学院2222 二维数组初始化是在类型说明时给各元素赋初值。二维二维数组初始化是在类型说明时给各元素赋初值。二维数组可按行分段赋值,也可按行连续赋值。一般形式如下:数组可按行分段赋值,也可按行连续赋值。一般形式如下:类型说明符类型说明符 数组名数组名 行下标行下标列下标列下标=初始化数据初始化数据;(1 1)分行初始化:)分行初始化:如:如:int a23=1int a23=1,2 2,33,44,5 5,66;注意
26、:注意:初始化的数据个数不能超过数组元素的个数。初始化的数据个数不能超过数组元素的个数。(2 2)按行初始化:)按行初始化:如:如:int a23=1int a23=1,2 2,3 3,4 4,5 5,66;6.2.4 二维数组的初始化二维数组的初始化武汉工程职业技术学院武汉工程职业技术学院2323(3 3)为部分元素初始化:)为部分元素初始化:如:如:static int a23=1static int a23=1,22,44;a00=1a00=1,a01=2a01=2,a10=4a10=4,其它元素皆赋,其它元素皆赋0 0;(4 4)可省略行下标的定义,但不能省略列下标定义:)可省略行下标
27、的定义,但不能省略列下标定义:如:如:int a 3=1int a 3=1,2 2,3 3,4 4,5 5,66;求解行下标的大小:求解行下标的大小:初值个数能被列下标整除,所得的商即是行下标的大小初值个数能被列下标整除,所得的商即是行下标的大小;初值个数不能被列下标整除,所得的商初值个数不能被列下标整除,所得的商+1+1即是行下标的即是行下标的大小;大小;6.2.4 二维数组的初始化二维数组的初始化武汉工程职业技术学院武汉工程职业技术学院2424【例【例6.56.5】一个班级有】一个班级有1010名学生,每名学生有三门课的考试成绩。求全班各门名学生,每名学生有三门课的考试成绩。求全班各门课的
28、平均成绩。课的平均成绩。程序如下:程序如下:#include#includevoid main()void main()int i,j;int i,j;float s=0,avg3,score53;float s=0,avg3,score53;printf(printf(请输入请输入1010个学生个学生3 3门课的成绩门课的成绩n);n);for(i=0;i3;i+)for(i=0;i3;i+)for(j=0;j10;j+)for(j=0;j10;j+)scanf(%f,&scoreji);/scanf(%f,&scoreji);/*输入输入1010个学生个学生1 1门课的成绩门课的成绩*/s
29、=s+scoreji;/s=s+scoreji;/*i i门课的成绩总和门课的成绩总和*/6.2.5 二维数组的应用二维数组的应用武汉工程职业技术学院武汉工程职业技术学院2525 avgi=s/5;/avgi=s/5;/*i i门课的平均成绩门课的平均成绩*/s=0;s=0;for(i=0;i3;i+)for(i=0;i3;i+)printf(printf(第第%d%d门课的成绩:门课的成绩:%.1fn,i,avgi);%.1fn,i,avgi);6.2.5 二维数组的应用二维数组的应用武汉工程职业技术学院武汉工程职业技术学院2626【例例6.66.6】有一个有一个3 34 4的矩阵,求出其中
30、最大值以及它所在位置。的矩阵,求出其中最大值以及它所在位置。#include#includevoid main()void main()int i,j,max,row=0,col=0;int i,j,max,row=0,col=0;int a34=2,14,-6,8,3,7,9,21,-9,16,0,5;int a34=2,14,-6,8,3,7,9,21,-9,16,0,5;max=a00;max=a00;for(i=0;i=2;i+)for(i=0;i=2;i+)for(j=0;j=3;j+)for(j=0;jmax)if(aijmax)max=aij;max=aij;row=i;col=
31、j;row=i;col=j;printf(max=%d,row=%d,col=%dn,max,row,col);printf(max=%d,row=%d,col=%dn,max,row,col);6.2.5 二维数组的应用二维数组的应用程序运行结果:程序运行结果:max=21,row=1,col=3武汉工程职业技术学院武汉工程职业技术学院27276.3 用字符数组存放字符串用字符数组存放字符串6.3.1字符数组的定义与初始化字符数组的定义与初始化1.1.字符数组的定义字符数组的定义 用来存放字符数据的数组称为字符数组。字符数组与用来存放字符数据的数组称为字符数组。字符数组与前面学过的数组一样都
32、必须先定义后使用,定义的形式如下:前面学过的数组一样都必须先定义后使用,定义的形式如下:char char 数组名常量表达式数组名常量表达式例如:例如:char c10char c10;则定义则定义c c为字符数组,包含为字符数组,包含1010个元素。个元素。武汉工程职业技术学院武汉工程职业技术学院2828 2.2.字符数组的初始化字符数组的初始化 在定义字符数组的同时可以进行初始化。初始化的方法是在定义字符数组的同时可以进行初始化。初始化的方法是将字符常量以逗号分隔写在花括号中。将字符常量以逗号分隔写在花括号中。例如例如:chars7=p,r,o,g,r,a,m;chars7=p,r,o,g
33、,r,a,m;在对全部元素指定初值时,可省写数组长度。在对全部元素指定初值时,可省写数组长度。如如:chars=p,r,o,g,r,a,m;chars=p,r,o,g,r,a,m;6.3.1 字符数组的定义与初始化字符数组的定义与初始化武汉工程职业技术学院武汉工程职业技术学院2929 注意:注意:字符数组每个元素存在内存的值是其字符数组每个元素存在内存的值是其ASCIIASCII值,故字符数组的处理基值,故字符数组的处理基本上与整型数组相同。本上与整型数组相同。【例例6.76.7】初始化字符数组并输出。初始化字符数组并输出。程序如下:程序如下:#include#includevoid main
34、()void main()int k;int k;char s12=H,o,w,a,r,e,char s12=H,o,w,a,r,e,y,o,u,?;,y,o,u,?;for(k=0;k12;k+)for(k=0;k12;k+)putchar(sk);putchar(sk);6.3.1 字符数组的定义与初始化字符数组的定义与初始化程序运行结果:程序运行结果:How are you?武汉工程职业技术学院武汉工程职业技术学院3030 3.3.字符数组也可以是二维或多维数组。字符数组也可以是二维或多维数组。例如:例如:char c510;char c510;即为二维字符数组。即为二维字符数组。6.3
35、.1 字符数组的定义与初始化字符数组的定义与初始化【例例6.8】读下列程序,写出输出结果读下列程序,写出输出结果.程序如下:程序如下:#includevoid main()int i,j;char a5=B,A,S,I,C,P,A,S,I,C;for(i=0;i=1;i+)/*外层循环控制行外层循环控制行*/for(j=0;j0)printf(str1str2n);if(strcmp(str1,str2)0)printf(str1str2n);if(strcmp(str1,str2)0)printf(str1str2n);if(strcmp(str1,str2)0)printf(str1str
36、2str1str2注意:注意:比较两个字符串是否相等一般用下面的语句形式:比较两个字符串是否相等一般用下面的语句形式:if if(strcmp(str1,str2strcmp(str1,str2)=0)=0);而不能直接判断:而不能直接判断:if(str1=str2)if(str1=str2);6.3.4 字符串处理函数字符串处理函数武汉工程职业技术学院武汉工程职业技术学院47476.6.测字符串长度函数测字符串长度函数strlenstrlen格式:格式:strlen(str)strlen(str)功能:计算字符串的实际长度功能:计算字符串的实际长度(不含字符串结束标志不含字符串结束标志0)0
37、)并作为函数返回值。并作为函数返回值。其中,其中,strstr可以是字符数组名、字符指针或字符串常量。可以是字符数组名、字符指针或字符串常量。6.3.4 字符串处理函数字符串处理函数武汉工程职业技术学院武汉工程职业技术学院4848例如:例如:#includestring.h#includestring.hvoid main()void main()char st 20=Very Good;char st 20=Very Good;printf(The lenth of the string is%dn,strlen(st);printf(The lenth of the string is%d
38、n,strlen(st);运行结果:运行结果:The lenth of the string is 9The lenth of the string is 9注意:注意:在使用在使用strlenstrlen计算字符串的长度时,总是以第计算字符串的长度时,总是以第1 1个个00作为字符串作为字符串的结束标志,的结束标志,00后面的内容不属于该字符串的内容。如:后面的内容不属于该字符串的内容。如:char str20=”Hello0world”;char str20=”Hello0world”;printf(The lenth of the string is%dn,strlen(str);pri
39、ntf(The lenth of the string is%dn,strlen(str);输出的结果是输出的结果是5.5.6.3.4 字符串处理函数字符串处理函数武汉工程职业技术学院武汉工程职业技术学院49496.4 程序综合实例程序综合实例【例【例6.96.9】用冒泡法对用冒泡法对1010个整数由小到大进行排序。个整数由小到大进行排序。程序如下:程序如下:#include#includevoid main()void main()int i,j,t,a10;int i,j,t,a10;printf(printf(请输入请输入1010个整数:个整数:n);n);for(i=1;i=10;i+
40、)for(i=1;i=10;i+)scanf(%d,&ai);scanf(%d,&ai);printf(n);printf(n);for(j=1;j=9;j+)/for(j=1;j=9;j+)/*控制比较的轮数控制比较的轮数*/武汉工程职业技术学院武汉工程职业技术学院50506.4 程序综合实例程序综合实例for(i=1;i=10-j;i+)/for(i=1;iai+1)/if(aiai+1)/*相邻元素相比较相邻元素相比较*/t=ai;/t=ai;/*交换数组元素的值交换数组元素的值*/ai=ai+1;ai=ai+1;ai+1=t;ai+1=t;printf(printf(由下到大排序:由下
41、到大排序:n);n);for(i=1;i=10;i+)for(i=1;i=10;i+)printf(%d ,ai);printf(%d ,ai);程序运行结果:程序运行结果:请输入请输入10个整数:个整数:5 8 3 21 0 -4 143 -12 67 42 由下到大排序:由下到大排序:-12 -4 0 3 5 8 21 42 67 143武汉工程职业技术学院武汉工程职业技术学院51516.4 程序综合实例程序综合实例【例例6.126.12】已知用户名是已知用户名是Li HongLi Hong,密码是,密码是LH123456LH123456;请输入用户名和;请输入用户名和密密码,判断如果用户
42、名和密码正确,则输出登录成功,否则,输出用户名码,判断如果用户名和密码正确,则输出登录成功,否则,输出用户名或密码错误。或密码错误。#include#include void main()char username15,pwd15;printf(n 请输入用户名:请输入用户名:);gets(username);printf(n 请输入密码:请输入密码:);gets(pwd);if(strcmp(username,Li Hong)=0)&(strcmp(pwd,LH123456)=0)printf(n成功登录成功登录 n);elseprintf(n 用户名和用户名和/或密码错误或密码错误n);武汉工程职业技术学院武汉工程职业技术学院 学无止境学无止境