gjh课件ch07数组.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章 批量数据—例1 例:输入10个学生的成绩,计算平均成绩,并统计成绩高于平均成绩的人数。  如何计算平均成绩?在循环中已解决。  如何统计高于平均成绩的人数?    用每个人的成绩与平均成绩比较  如何存储每个人的成绩?    批量数据的存储。  用变量存储:变量之间无联系,不方便操作。  解决方法:使用数组。 #include stdio.h void main() {int i,n,k=0; float a[10],s=0,ave; n=10; for(i=0;in;i++) { scanf(%f,a[i]); s=s+a[i];} ave=s/n; for(i=0;in;i++) if(a[i]=ave) k++; printf(%d\n,k); } 批量数据—例2 例:输入3个整数a、b、c,按降序排序后输出。 思路:a存放最大数;b存放中间数;c存放最小数; 输出a、b、c。 实现:若ab:交换a、b的值; 若ac:交换a、c的值; 若bc:交换b、c的值; 输出a、b、c。 扩充:4个数a、b、c、d排序? 10个数如何排序? 解决:先解决10个数据的表示和存放问题 ——使用数组 批量数据 在一组数中找出最大(小)的数。 分析: 一组整数:使用整型数组 int a[10] 找最大数过程:  设第一个是最大的,max?a[0] 将max与a[1]~a[9]比较   若maxa[j] 则  max ? a[j] 最后max中就是最大数  思考: 在一组数中查找指定数,并输出其所在位置,若未找到,输出“not found”。 #include stdio.h void main() { int a[10]; int i,j,t; for (i=0;i10;i++) scanf(%d,a[i]); for(j=0;j9;j++) for(i=0;i9-j;i++) if (a[i]a[i+1]) {t=a[i]; a[i]=a[i+1]; a[i+1]=t;} for(i=0;i10;i++) printf(%d,a[i]); printf(\n); } 选择法排序——逐一比较、找出最大(小) 排序过程: 0)在a[0] …… a[9]之间找最大的,与a[0] 交换; 1)在a[1] …… a[9]之间找最大的,与a[1] 交换; …… i) 在a[i]…… a[9]之间找最大的,与a[i] 交换; …… 8)在a[8] …… a[9]之间找最大的,与a[8] 交换; #include stdio.h #define n 5 void main() {int i,j,k,a[10],m; for(i=0;in;i++) scanf(%d,a[i]); for(i=0;in-1;i++) { m=i; for(j=i+1;jn;j++) if(a[j]=a[m])  m=j; k=a[i]; a[i]=a[m]; a[m]=k; } for(i=0;in;i++) printf(%4d,a[i]); } 在一组数中查找指定数x ——”顺序查找法”。 若数据已经有序,如何查找效率更高?? 分析: 一组有序数是大小连续(假设为升序); 如果x比某个数大,则该数前面数无需再比较,只比较后面各数,缩小了查找范围; 可以指定与该组数的中间元素比较,引出“折半查找法”。 二维数组的定义 二维数组的引用 #include stdio.h 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++) /* 输出a数组,给b数组赋值 */ {for(j=0;j=2;j++) {printf(%5d,a[i][j]); b[j][i]=a[i][j]; } printf(\n); } printf(array b:\n); for(i=0;i=2;i++) /* 输出b数组(按行输出)*/ {for(j=0;j=1;j++) printf(%5d,b[i][j]); printf(\n); } } #include stdio.h void main() {int i , j , pmax ; float

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档