- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* enum { NUM = 200, HISTOHIGH = 60 }; double scores[NUM]; int readscores(int lim, double tb[]); void statistics(int num, double tb[]); void histogram(int num, double tb[], int high); int main(void) { int n = readscores(NUM, scores); statistics(n, scores); histogram(n, scores, HISTOHIGH); return 0; } 程序主体结构 函数原型 * int readscores(int lim, double tb[]) { int i = 0; while(ilim scanf(%lf,tb[i])==1) ++i; return i; } 输入成绩函数 * void statistics(int n, double tb[]) { int i; double s, sum, avr; if (n 2) { /*项数小于2时的处理*/ printf(Data too few.\n); return; } for (sum = 0.0, i = 0; i n; ++i) sum += tb[i]; avr = sum/n; for (sum = 0.0, i = 0; i n; ++i) sum += (tb[i]-avr)*(tb[i]-avr); s = sqrt(sum/(n-1)); printf(Total students: %d\n, n); printf(Average score: %f\n, avr); printf(Std deviation: %f\n\n, s); } 计算并输出统计值函数 如果需要保留 avr和s? * 直方图生成(用横向的直方图): 每个成绩段输出一组字符,选H作为基本字符。 void prtHH(int n) { int i; for(i = 0; i n; ++i)putchar(H); } 分段长度可用符号常量SEGLEN表示,根据它可算出分段数HISTONUM 。 enum { SEGLEN = 5, HISTONUM = (100/SEGLEN)+1 }; * 分段成绩数统计:用数组统计各分段成绩人数,将数组命名为segs,其中应有HISTONUM个计数器。 处理的是等长分段,存在从成绩得到计数器下标的简便方法。segs[((int)scores[i])/SEGLEN]++; 将成绩强制转到int后除以分段长度得到计数器下标。 下面考虑用如下形式输出直方图行: 80: 23|HHHHHHHHHHHHHH 为使直方图规范化,最长行HISTOHIGH个字符。 * void histogram(int n, double tb[], int high) { int i, mx; int segs[HISTONUM]; if (n == 0) return; for (i = 0; i HISTONUM; ++i) segs[i] = 0; for (i = 0; i n; ++i) /* 统计分段人数 */ segs[(int)tb[i]/SEGLEN]++; for (mx = 1, i = 0; i HISTONUM; ++i) if (segs[i] mx) mx = segs[i]; /*找最大值*/ for (i = 0; i HISTONUM; ++i) { /* 输出 */ printf(%3d: %4d|,(i+1)*SEGLEN,segs[i]); prtHH(segs[i]*high/mx); putchar(\n); } } * 分析和改进 若文件中都是0到100的数值,程序能得到正确结果。出现不法数据呢?如混入一个178,程序会怎么样? 实际软件应正确处理合法输入,还应在输入有错时合理处置。如果编译程序遇到不合法程序就垮台,还可能破坏操作系统,还有人愿意用它吗? 程序抵御不合法数据破坏的能力称为强健性。 修改后的readscores如下 首先需要检查每个输入项,只将合法数据存入数组。 有关数据是否处理完的情况只能在
您可能关注的文档
- 半桥LLC谐振变换器设计与仿真要点详解.ppt
- 半主动悬架要点详解.ppt
- 包豪斯时期的设计要点详解.ppt
- 包装设计的流程与运作_01包装设计的流程与定位要点详解.ppt
- 包装设计的流程与运作要点详解.ppt
- 包装设计基础要点详解.ppt
- 包装与装卸搬运要点详解.ppt
- 包装装潢-鲜菇罐头包装设计02要点详解.ppt
- 宝钢协同办公平台简介要点详解.ppt
- 宝洁的校园招聘要点详解.ppt
- 部编版五年级下册道德与法治 期末测试卷精品(考试直接用).docx
- 部编版四年级下册道德与法治 期末测试卷1套.docx
- 部编版五年级下册道德与法治 期末测试卷含完整答案【网校专用】.docx
- 部编版六年级下册道德与法治第四单元《让世界更美好》测试卷附完整答案(考点梳理).docx
- 部编版四年级下册道德与法治《期末测试卷》附参考答案(a卷).docx
- 部编版五年级下册道德与法治 期末测试卷精品(突破训练).docx
- 部编版六年级下册道德与法治期末测试卷及答案(全优).docx
- 部编版五年级下册道德与法治 期末测试卷(精选题)word版.docx
- 部编版一年级上册道德与法治第二单元《校园生活真快乐》测试卷含完整答案【夺冠】.docx
- 部编版一年级上册道德与法治第二单元《校园生活真快乐》测试卷精品【夺分金卷】.docx
最近下载
- 2025年上半年教师资格证考试《教育教学知识与能力》(小学)真题.pdf
- 2021年广东省3+证书高职高考真题(英语)含答案.doc VIP
- (中药足浴方选.doc VIP
- 2024年甘肃省农垦集团有限责任公司人才招聘469人笔试参考题库附带答案详解.doc
- 新版大型养路机械使用管理规则.pdf VIP
- 湖北省武汉市硚口区2023-2024学年七年级下学期期末数学试题(解析版).docx VIP
- 品管圈提高早孕建册率ppt课件.pptx
- 环氧树脂及环氧树脂胶粘剂的基本知识.docx VIP
- 三维重建模型 内窥镜图像综合分析软件产品技术要求renxing.pdf
- 一般工业固体废物名录(2018).pdf
文档评论(0)