7.10-.12任务.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简单数值处理问题 3.3编写函数fun,其功能是:求出1~1000之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。 注意:部分原程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include stdio.h void fun (int *a, int *n) { } main( ) { int aa[1000], n, k ; void NONO ( ); fun ( aa, n ) ; for ( k = 0 ; k n ; k++ ) if((k + 1) % 10 == 0) printf(\n) ; else printf(%5d, aa[k]) ; NONO( ); } void NONO ( ) {/* 本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/ int aa[1000], n, k ; FILE *fp ; fp = fopen(out.dat,w) ; fun ( aa, n ) ; for ( k = 0 ; k n ; k++ ) if((k + 1) % 10 == 0) fprintf(fp, \n) ; else fprintf(fp, %5d, aa[k]) ; fclose(fp) ; } 答案:void fun (int *a, int *n) { int i,j=0; for(i=1;i=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/ if((i%7==0||i%11==0)i%77!=0) a[j++]=i; *n=j; } 注意事项:本题的主要目的就是利用for循环处理数值问题中的满足条件问题,关键是在if结构中使用或运算与于运算。 46.3编写函数fun,其功能是:将两个两位数的正整数a、b合并成一个整数放在c中。合并的方式是:将a数的十位和个位数依次在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。 例如,当a=45,b=12时,调用该函数后c=2514。 #include stdio.h void fun(int a, int b, long *c) { } main() { int a,b; long c; void NONO ( ); printf(Input a, b:); scanf(%d %d, a, b); fun(a, b, c); printf(The result is: %ld\n, c); NONO(); } void NONO ( ) {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen(in.dat, r) ; wf = fopen(out.dat,w) ; for(i = 0 ; i 10 ; i++) { fscanf(rf, %d,%d, a, b) ; fun(a, b, c) ; fprintf(wf, a=%d,b=%d,c=%ld\n, a, b, c) ; } fclose(rf) ; fclose(wf) ; } 答案:void fun(int a, int b, long *c) { *c=a/10+(b/10)*10+(a%10)*100+(b%10)*1000; } 注意事项:本题考点主要在如何分离一个n位数的每个位的数字,基本技巧为n=98763 则a,b,c,d,e表示每位的数字,即a=n%10,b=(n/10)%10,c=(n/100)%10,d=(n/1000)%10,e=n/10000, 编程时一定要注意实参传递给型参的过程是值传递还是地址传递! 40.3编写函数fun,其功能是:根据以下公式计算s,并计算结果作为函数值返回,n通过形参传入。 例如:若n的值为11时,函数的值为1.833333 #include stdio.h float fun(int n) { } main() { int n; float s; void NONO ( ); printf(\nPlease enter N:); scanf(%d, n); s = fun(n);

文档评论(0)

baa89089 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档