项目四学生成绩的排序讲解.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文档。上传文档
查看更多
任务 5 举一反三 【例4-15】输入20个数,输出它们的平均值及其中与平均值之差的绝对值为最小的数组元数。 分析: (1) 定义一个数组int a[20],输入20个数组元素并将其相加到s中,那么平均值就是avg=s/20; (2) 接下来的问题是求最小值。先假设第一个数最接近平均数,即min=fabs(a[0]-avg),k=0,然后将min与fabs(a[1]-avg)相比,若大,则新的min= fabs(a[1]-avg),k=1,再将min与fabs(a[2]-avg)相比,若大,则新的min= fabs(a[2]-avg),k=2,这样不断重复多次,直到与fabs(a[19]-avg)比完; (3) 输出最小值。 #include stdio.h #include math.h main() {int i,k,a[20]; float s=0,avg,min; for(i=0;i20;i++) {scanf(%d,a[i]); s=s+a[i];} avg=s/20; min=fabs(a[0]-avg);k=0; for(i=1;i20;i++) if(minfabs(a[i]-avg)) {min=fabs(a[i]-avg); k=i;} printf(平均数为%5.1f\n,avg); printf(最小相差:%f,a[%d]=%d\n,min,k,a[k]);} 【例4-16】输入10 个数存入一维数组,然后再按逆序重新存放后输出。 分析:定义一个一维数组int a[10],用一个循环将10个数输入。然后a[0]与a[9]交换,a[1]与a[8],a[2]与a[7],a[3]与a[6],a[4]与a[5],即a[i]与a[9-i]交换(i=0到(10-1)/2),最后输出a[0]至a[9]即可。 #include stdio.h #define N 10 main() {int a[N],i,t; printf(输入%d个数\n,N); for(i=0;iN;i++) scanf(%d,a[i]); for(i=0;i=(N-1)/2;i++) {t=a[i];a[i]=a[N-1-i];a[N-1-i]=t;} //交换 printf(输出逆序数\n); for(i=0;iN;i++) printf(%3d,a[i]); printf(\n); } 程序结果 【例4-17】从键盘输入一串字符(以回车键结束),统计字符数。 Str(0) …… Str(k) \0 分析:因为不知道会输入一串多长的字符,所以刚开始定义一个足够大的字符数组char str[80],然后从键盘输入的字符将会放在str[0]至str[k]中,而str[k+1]将存放回车。如表: 所以,从str[0]开始找,只要没找到’\0’,则继续找下一个。 程序如下: #include stdio.h #define N 80 main() {char str[N],i,t; printf(输入字符串\n); gets(str); i=0; while(str[i]!=\0) i++; printf(字符数为%d,i); printf(\n); } 程序运行如下 【例4-18】输出如下的杨辉三角形,要求一共有10行10列。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 …… 分析:从图中可以看出,杨辉三角形的规律是:第一列的元素其值为1,主对角线上的元素其值也为1,其它元素的值都是其前一行的前一列与前一行的本列的值相加。所以有: /*给每一列及主对角元素赋值*/ for(i=0;i10;i++) {a[i][0]=1; a[i][i]=1;} /*计算其它列的值*/ for(i=2;i10;i++) for(j=1;jI;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; #include stdio.h main() {int a[10][10],i,j; /*给每一列及主对角元素赋值*/ for(i=0;i10;i++) {a[i][0]=1; a[i][i]=1;} /*计算其它列的值*/ for(i=2;i10;i++) for(j=1;ji;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; printf(杨辉三角形的图形为:\n); for(i=0;i10;i++) {for(j=0;j=i;j++) printf(%5d,a[i][j]); printf(\n);} } 项目四 学生成绩的排序 项目要求 一个班有40位学生参加了期终考试

文档评论(0)

南非的朋友 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档