C语言第09讲.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言第09讲

**例4.15 输入5个人名,按字母顺序排列输出。 ⒊ 查 找 顺序查找程序 : ⑵ 折半查找——适用于在有序数组中查找 折半查找程序 专题二、字符数组 例:编程找出三个字符串中的最小字符串 (P111 例4.25 / p99 例4.23 ) ⑵ 字符的加密解密 程序如下: 专题三、数组和矩阵 矩阵的相关算法 ② 生成三角阵 ③ 与下标相关矩阵 1 4 7 2 5 8 3 6 9 ⑵ 矩阵及元素求和 ② 求两个矩阵之和(P100 例4.9 / p91 例4.11、p100 例4.25) ⑶ 矩阵的转置运算 ② 求方阵的转置阵(p90 例4.9 ) ★ 思考题: * 合肥工业大学 Xuan shanli 构造类型一 第四章 数 组 #include string.h main() { char a[5][20],b[20]; int i,j,k; for(i=0;i5;i++) gets( a[i] ); /* 用gets( )函数输入5个人名字符串 */ printf(\n); for( i=0; i5; i++ ) { k=i; strcpy( b, a[i] ); /* 假定a[i]最小,用k记下最小值位置 */ for(j=i+1; j5;j++) if(strcmp(a[j],b)0) { k=j; strcpy( b,a[j] ); }// 寻找实际最小值-b, if( k!=i ) //并记录最小值位置-k {strcpy( b, a[i] ); strcpy( a[i],a[k] ); // 将假定最小值a[i]与实际最小值 strcpy(a[k], b);} //a[k]交换(字符串交换) puts(a[i]); /* 用puts输出 */ } } 注意:本例中将一个二维数组a[5][20] 分成5个一维数组a[0]~a[4]使用。 a[0] cao lei a[1] jiang wei a[2] wang li guang a[3] li chong a[4] sun yan po 查找是在一组数中,寻找一个特定的数,并显示结果。 ⑴ 顺序查找 顺序查找算法:构造循环,使循环的变量遍历数组每个元素的下标。循环的过程中让特定的数和每个元素比较,相等则表示找到该数,并输出其下标(位置)。 查找中可以设置标志。如先设置一个整型变量iFlag=0表示没有找到,在查找的过程中一旦找到后,将iFlag赋值为1,结束查找后,可以由iFlag值所代表的逻辑状态,确定是否已找到特定的数。 #include stdio.h void main(void) { int i,j,iFlag,a[10]={4,3,5,1,10,12,2,6,7,9}; iFlag=0; scanf(“%d”,j); for(i=0;i10;i++) if(j==a[i]) { iFlag=1; printf(“The position is %d\n”,i); } if(iFlag==1) printf(“Found! %d”,j); else printf(“Not found!”); } 设置标志为没找到。 循环遍历所有元素 比较设置标志输出位置。 chap4ex7 在一个有序的一维数组中查找某一个数。已知某数组按升序排列,给定一个数,找出该数在数组中的位置。 可以通过将区间折半,快速缩小查找区间,提高效率! 折半查找算法演示 #include stdio.h void main(void) { int iTop,iBot,iMid,iS,iFlag,a[10]={1,2,3,5,6,8,9,10,11,12}; iFlag=0; iTop=0; iBot=9; scanf(“%d”,iS); do{ iMid=(iTop+iBot)/2

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档