数组操作和字符处理

上传人:206****923 文档编号:51327471 上传时间:2018-08-13 格式:PPT 页数:58 大小:164.50KB
返回 下载 相关 举报
数组操作和字符处理_第1页
第1页 / 共58页
数组操作和字符处理_第2页
第2页 / 共58页
数组操作和字符处理_第3页
第3页 / 共58页
数组操作和字符处理_第4页
第4页 / 共58页
数组操作和字符处理_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《数组操作和字符处理》由会员分享,可在线阅读,更多相关《数组操作和字符处理(58页珍藏版)》请在金锄头文库上搜索。

1、六、数组操作和字符处理概述 6.1 一维数组定义 元素的引用 初始化字符串输入和输出 程序举例 6.2 二维数组定义 元素的引用 初始化 字符串处理函数 程序举例概 述例:求5名学生某门功课的平均成绩.main ( ) float s1, s2, s3, s4, s5, avg;printf ( “Enter the 5 scores :“);scanf(“%f, %f, %f, %f, %fn“, s1, s2, s3, s4, s5 );avg = s1 + s2 + s3 + s4 + s5;avg = avg/5.;printf (“average score is %6.2fn“,

2、avg ); 数组是按序排列的同类型变量的集合,是一组具 有相同名字, 不同下标的下标变量。 下标变量形式 数组名下标如 s0、s2、s3、s6、s10 数组名表示整个数组,如:s 下标变量又称数组元素 下标指出某个数组元素在数组中的位置下标可以用常量表示,也可以用变量表示 有一个下标的下标变量所组成的数组称为一维数 组;有二个下标的下标变量所组成的数组称为二维数 组;如:x1、y5 数组x和y都是一维数组a12、b23 数组a和b都是二维数组使用数组,上例程序可改写为:main ( ) float s6, avg=0;int i;for (i = 1; i main ( ) char s80

3、, c; int i, nd10;for ( i=0; i=0gets (a);puts (a); 运行结果: I am a boy. I am a boy.# include main ( ) char a20,*s=a;gets (s);puts (s); 例5:写出下列程序的输出结果main() char ch=“600“;int a,s=0;for(a=0;cha=0printf(“n“);for(p2=p1;*p2!=0;p2=p2+2) printf(“%c“,*p2);printf(“n“);?运行结果:? uoy_era_woHHwaeyu例7:写出下列程序的输出结果 main

4、() char s=“Shanghai“; int num,i,yes; yes=0; num=0; for(i=0;si!=0;i+) if(si=aif(yes) num+; printf(“num=%dn“,num); ?结果:num=6例8:给出年、月、日,问是当年的第几天。 main( ) int y, m, d, n, i;int dpm13=0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31; scanf (“%d, %d, %d“,if (y%4=0if (m12|ddpmm) printf(“Input error!n“);el

5、se for( i=0, n=d; ii?sji; j- )if ( sjsj+1) t = sj; sj = sj+1; sj+1 = t; for ( i=0; isj) k=j;if(k!=i) t=si; si=sk; sk=t;for(i=0;isj) t=si; si=sj; sj=t;for(i=0;iam?如是,则x必定落在后半段。以后半段为新查找 范围,再划分两段范围:lowm+1,high不变, m=(low+high)/2。回到第步。如不是,x必定落在前半段。以前半段为新查找 范围,再划分两段范围: low不变,highm-1, m=(low+high)/2。回到第步。m

6、ain ( ) int low, high, m, x,*p , int a10=-54,-34,-8,0,3,12,25,56,68,98; printf(“Please input x:“); scanf (“%d“,low=0; high=9; p=a;while (low*(p+m) low=m+1;else high=m-1;if (low字符串s2,则返回值04. 字符串连接函数strcat()格式:char *strcat(char *s1, char *s2)功能:把字符数串s2连接到字符串s1的后面,并删去字符串s2后的结束标志0。返回字符串s1的首地址。 6.2.4 二维数

7、组程序举例【例4.15】输入3个字符串,每个字符串长度不超过20个字符,要求按从小到大的顺序输出这3个字符 串。说明: 本例是处理3个字符串,且每个长度不超过20个 字符,所以可定义一个3行20列的二维数组,如char a320; ,每行存放一个字符串。 二维数组a可以看成是由三个一维数组a0、a1 和a2构成的。a0、a1和a2可分别看成是一维数组名,表示该数组中的首地址。#include “string.h“ main() char a320,s20;gets(a0); gets(a1); gets(a2);if(strcmp(a0,a1)0) strcpy(s,a0); strcpy(a

8、0,a1); strcpy(a1,s); if(strcmp(a0,a2)0) strcpy(s,a0); strcpy(a0,a2); strcpy(a2,s); if(strcmp(a1,a2)0) strcpy(s,a1); strcpy(a1,a2); strcpy(a2,s); printf(“n%sn%sn%sn“,a0,a1,a2); 例1:在二维数组(3 x 4)中找最大的元素,再行 列交换,使它移到左上角。 main ( ) if (aijmax) int a34, i, j, t; max=aij; int max, ip, jp; ip=i; jp=j;for (i=0;

9、 imax) int a34, i, j, t; max=aij; int max, ip, jp; ip=i; jp=j;for (i=0; ii;j- i=04 8 3 6 1 -2 3 8 3 6 -2 12 8 3 -2 6 11 8 -2 3 6 1-2 8 3 6 1j =4;ji;j- i=1 4 -2 8 3 6 13 -2 8 3 1 6 2 -2 8 1 3 6-2 1 8 3 6j =4;ji;j- i=2 4 -2 1 8 3 63 -2 1 8 3 6 -2 1 3 8 6 j =4;ji;j- i=3 4 -2 1 3 8 6-2 1 3 6 8 5个元素的选择法排序过程示意图j=i+1;j5;j+ i=01 8 3 6 1 -2 2 3 8 6 1 -23 3 8 6 1 -24 1 8 6 3 -2-2 8 6 3 1j= i+1;j5;j+ i=1 2 -2 8 6 3 13 -2 6 8 3 1 4 -2 3 8 6 1-2 1 8 6 3j=i+1;j5;j+ i=2 3 -2 1 8 6 34 -2 1 6 8 3 -2 1 3 8 6 j=i+1;j5;j+ i=3 4 -2 1 3 8 6-2 1 3 6 8

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号