- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* enum{ NUM = 200 }; const double PASS = 60.0; double scores[NUM]; int main() { int i, n = 0, fail; while(nNUM scanf(%lf,scores[n])==1) ++n;? /*输入时需要判断不越界*/ for(fail = 0, i = 0; i n; ++i) if(scores[i] PASS) { printf(%f\n, scores[i]); ++fail; } for(i = 0; i n; ++i) if(scores[i] = PASS) printf(%f\n, scores[i]); printf(Fail:%d\nPass:%d\n,fail, n-fail); return 0; } * 例3 多项式求值 设数组p中存放下列多项式的系数, 其中p[i]存放 写程序求p表示的多项式在指定点的值。 方法1:求出各项值累加。假设指定点值存于x: for (sum = 0.0, n = 0; n TERMS; ++n) { for (t = p[n], i = 1; i = n; ++i) t *= x; sum += t; } 循环体内可以改写为(先算x的幂): for (t = 1.0, i = 1; i = n; ++i) t *= x; sum += t * p[n]; 可发现有大量重复计算。 * 通过保存前次的t值: for(sum = 0.0, t = 1.0, n = 0; n TERMS; ++n) { sum += t * p[n]; t *= x; } 方法2:多项式可以变形为Horner范式: 按照这个公式,求值循环可写为: for (sum = 0.0, n = TERMS-1;n = 0; --n) sum = sum * x + p[n]; 从计算量上比较它们:需要多少次加法,多少次乘法。 * 定义数组的问题 如果数组表示的是全局数据集合,需要在多个函数里使用,那么可考虑定义为外部数组。 大的数组应定义为外部,以免占大量运行栈空间。一般系统不允许在函数内定义特别大的数组。 若数组保存着递归定义函数的局部数据,就必须定义为自动数组。因为递归调用时需要数组的多份拷贝。 其他情况可以根据需要自由选择。 * 高级语言程序设计 * 主要内容:数组 6.1 数组的概念、定义和使用 6.2 数组处理程序实例 6.3 数组作为函数参数 6.4 字符数组与字符串 6.5 两维和多维数组 6.6 编程实例 * 6.3 数组作为函数参数 数组可以作为函数的参数,但是在向函数传递数组时通常有两种方法:即: “地址”的传递 “值”的传递 * 方法一: 用数组名作为实际参数,给函数传递数组的地址,通过这个地址就可以访问到数组的元素了——双向传递。 #includestdio.h #define N 20 void f(int b[ ] , int n , int m) { int i; for (i = m; i = n; i--) b[i+1] = b[i]; } void main() { int i, a[N] = {1,2,3,4,5,6,7,8,9,10}; f(a, 2, 9); for (i = 0; i 5; i++) printf(“%4d”, a[i]); } a 1 2 3 4 5 6 7 8 9 10 b 10 9 8 7 6 4 5 3 1 2 3 3 4 * 方法二: 用数组元素作为实际参数,是一种传值的方式,即:调用函数时要复制数据 ——单向传递。 #includestdio.h int fmax(int x, int y) { return (x y ? x : y ) ; } void main() { int a[10], j, max ; for (j = 0; j = 9; j++) scanf(“%d”, a[j]); max = a[0]; for (j = 1; j = 9; j++) max = fmax(max, a[j] ) ; printf(“\n最大值为:%8d\n”, max); } * 对函数参数的小结: “值”传递 形参和实参都
您可能关注的文档
最近下载
- 2023年外贸单证实务试卷题库和答案.doc VIP
- 消防安全重点单位消防档案.docx VIP
- 考前必备2025年四川省巴中市公务员省考公共基础知识测试卷(含答案.pdf VIP
- 教学课件:《思想政治学科教学新论》(第二版)刘强.ppt
- 2025云南怒江州福贡县义务教育教师专项招聘65人笔试备考试题及答案解析.docx VIP
- Unit 3 课时5 Word power(课件)-2025-2026学年八年级英语上册(译林版2024).pptx
- DB44/T 2457-2024地质灾害自动化监测规范.docx
- 流程制度文件评审制度及表单.docx VIP
- 2025年职业学院专任教师辅导员招聘考试笔试试题(含答案).docx VIP
- 基于BIM技术的铁路施工管理与协同方案研究.pptx VIP
文档评论(0)