- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)