第6章简单构造数据类型.ppt

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

6.7 综合案例 【案例6.17】9个人的成绩存放在score数组中,计算出平均分,并将低于平均分的分数放在below所指的数组中。 例如:当score数组中的数据为:10﹑20﹑30﹑40﹑50﹑60﹑70﹑80﹑90时,函数返回的人数应该是4,below中的数据应为:10﹑20﹑30﹑40。 案例分析: 用一维数组存放相应的分数段人数 具体程序如下: #include “stdio.h” #include “string.h” main( ) { int i, below [9], j,sum,avg,n; int score[9; for(i=0;i9;i++) scanf(%d,score[i]); /*输入9个成绩,放入数组中*/ for(i=0,sum=0;i9;i++) sum+=score[i]; avg=sum/9; for(i=0,n=0,j=0;i9;i++) if(score[i]avg) { n++; below[j]=score[i]; j++; } printf(the average score=%d\n,avg); /*输出平均成绩*/ printf (\nBelow the average score are:); for (i=0;in;i++) printf(%d ,below[i]); /*输出below数组中的数据*/ } 【案例6.18】程序定义了N*N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的S。 例如:a数组中的值为 0 1 2 7 9 1 9 7 4 5 a= 2 3 8 3 1 4 5 6 8 2 5 9 1 4 1 则返回主程序后S的值应为:3.375。 案例分析: 循环遍历二维数组的满足条件的每一个元素, 二维数组循环,一般需要两个下标。外围的上下两行元素即为a[0],a[4]两个一维数组的值。 具体程序如下: #include “stdio.h” #include ”stdlib.h” #define N 5 main( ) { int a[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1}; int i,j; double sum,s; printf(****The array****\n); for(i=0;iN;i++) { for (j=0;jN;j++) printf(%4d,a[i][j]); printf(\n); } for(sum=0,i=0;iN;i++) sum=sum+a[0][i]+a[N-1][i]; /*求出上下两行数组元素值的和*/ for(i=1;i=N-2;i++) sum=sum+a[i][0]+a[i][N-1]; /*求出其余外围数组元素值的和*/ s= sum/(4*N-4); printf(****THE RESULT****\n); printf(the sum is:%lf\n,s); } 【案例6.19】编程将str1复制到str2中。 案例分析: 定义两颗指针p1、p2。先将指针p1的内容送到指针p2的内容中,即进行两个指针内容的赋值,然后再判断所赋值的字符是否是串结束标记\0,如果不是串结束标记,则执行循环继续进行字符复制;如果是串结束标记,则退出循环,完成串复制。 具体程序如下: #include “stdio.h” #include “string.h” main( ) { char str1[80], str2[80], *p1, *p2; printf(Enter string 1:); gets(str1); p1=str1; p2=str2; while ( (*p2=*p1) != \0 ) /* 指针p1的内容送到指针p2 */ { p1++; p2++; } /* 指针p1和p2分别向后移动1个字符 */ printf(String 2:); puts(str2); } 【案例6.20】假定输入的字符串中只包含字母和*号。请程序它的功能是:除了字符串前导的*号之外,将串中其他*的号全部删除。在编写函数时,不得使用C语言提供的字符串函数。 例如:字符串中

文档评论(0)

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

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档