改错.docx

上传人:b****1 文档编号:10662900 上传时间:2023-05-27 格式:DOCX 页数:17 大小:17.48KB
下载 相关 举报
改错.docx_第1页
第1页 / 共17页
改错.docx_第2页
第2页 / 共17页
改错.docx_第3页
第3页 / 共17页
改错.docx_第4页
第4页 / 共17页
改错.docx_第5页
第5页 / 共17页
改错.docx_第6页
第6页 / 共17页
改错.docx_第7页
第7页 / 共17页
改错.docx_第8页
第8页 / 共17页
改错.docx_第9页
第9页 / 共17页
改错.docx_第10页
第10页 / 共17页
改错.docx_第11页
第11页 / 共17页
改错.docx_第12页
第12页 / 共17页
改错.docx_第13页
第13页 / 共17页
改错.docx_第14页
第14页 / 共17页
改错.docx_第15页
第15页 / 共17页
改错.docx_第16页
第16页 / 共17页
改错.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

改错.docx

《改错.docx》由会员分享,可在线阅读,更多相关《改错.docx(17页珍藏版)》请在冰点文库上搜索。

改错.docx

改错

已知fibonacci数列:

1,1,2,3,5,8,......,它可由下面公式表述:

F

(1)=1ifn=1

F

(2)=1ifn=2

F(n)=F(n-1)+F(n-2)ifn>2

以下程序是求F(35),请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。

#include

#include

main()

{

doublef1,f2;

inti;

f1=1;f2=1;

for(i=1;i<=35;i++)

{

f1=f1+f2;

f2=f2+f1;

}

clrscr();

printf("\nthenumberis:

%12.0lf",f1);

}

/*REF:

9227465:

REF*/

若某个整数N的所有因子之和等于N的倍数,则称N为多因子完备数。

例如,28是多因子完备数。

因为:

1+2+4+7+14+28=56=28*2,下面程序求[10,600]间最大的多因子完备数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。

如果算有多少个因子完备数,如何修改程序?

#include

#include

#include

main()

{

inta,b,c,n,big,count=0;

for(a=10;a<=600;a++)

{

b=0;

for(c=1;c<=a;c++)

if(a%c==0)

b++;

if(b%a==0)

{big=a;

}

}

printf("big=%d",big);

/*REF:

496:

REF*/

已知24有8个因子,而24正好被8整除。

下面程序求[100,300]之间有多少个整数能被其因子的个数整除,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。

如果求最大数,怎么修改程序

#include

#include

#include

main()

{

inta,b,c,n,count=0;

b=0

for(a=100;a<=300;a++)

{

for(c=2;c<=a;c++)

if(a%c==0)

b+=1;

if(a%b==0)

{

count++;

}

}

pri/*REF:

19:

REF*/

下面程序求[2,600]之间同构数之和,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。

同构数是:

一自然数平方的末几位与该数相同时,称此数为自构数,例如:

5*5=25,则称5为自同构数。

#include

#include

#include

main()

{

longsum,n,m,s,k;

sum=0;

for(n=2;n<=600;n++)

{

if(n<10)k=10;

else

if(n<100)k=100;

elsek=1000;

s=n*n;

s=s-n;

if(s%k==0)

/*REF:

488:

REF*/

下面程序是求[1,550]之间同时满足除3余2和除5余3条件的数之和。

请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。

#include

#include

#include

main()

{

intsum;

inti;

sum=0;

for(i=1;i<=550;i++)

{

if(fmod(i,3)==2&&fmod(i,5)==3)

sum+=1;

}

clrscr();

printf("%ld\n",su/*REF:

10286:

REF*/

下面的程序中,函数fun的功能是:

根据形参m,计算下面公式的值。

T=1/1!

+1/2!

+1/3!

+......+1/m!

请改正程序中的错误,并运行改正后的程序。

当从键盘输入10时,给出程序运行的正确结果(按四舍五入保留10位小数)。

#include

#include

doublefun(intm)

{doublefac,t=0.0;

inti=1,j;

for(i=1;i<=m;i++)

{fac=1.0;

for(j=1;j<=m;j++)fac=fac*i;

t+=1.0/fac;

}

returnt;

}

main()

{intm;

clrscr();

printf("\n请输入整数:

");

scanf("%d",&m);

printf("/*REF:

1.7182818011:

REF*/

下面的程序中,函数fun的功能是:

根据形参m,计算下面公式的值。

T=1+1/(2*3)+1/(3*4)+......+1/(m*(m+1))

请改正程序中的错误,并运行改正后的程序。

当从键盘输入50时,给出程序运行的正确结果(按四舍五入保留6位小数)。

#include

#include

doublefun(intm)

{doublet=1.0;

inti=2;

for(i=2;i<=m;i++)

t+=1/(i*(i+1));

returnt;

}

main()

{intm;

clrscr();

printf("\n请输入一个整数:

");

scanf("%d",m);

printf("\n结果是:

%lf\n",fun(m));

}

/*REF:

1.480392:

REF*/

下面的程序是求500以内的所有的素数的个数。

请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。

#include

#include

#include

intprime(intn)

{intyes,i;

if(n<=1){return1;}

yes=1;

for(i=2;i<=sqrt(n);i++)

if(n%i==0){yes=0;break;}

returnyes;

}

main()

{intcount=0,i;

clrscr();

for(i=2;i<=500;i++)

/*REF:

95:

REF*/

下面的程序是求如下表达式的值。

S=sqrt(ln

(1)+ln

(2)+ln(3)+……+ln(n))

请改正程序中的错误,并运行修改后的程序,当n=20时,给出程序运行结果(按四舍五入保留6位小数)。

#include

#include

#include

intfun(intn)

{doubles=0.0;inti;

for(i=1;i<=n;i++)

s+=log(1.0*i);

s=sqrt(s);

returns;

}

main()

{clrscr();

printf("%ld\n",fun(20));

}

/*REF:

6.506383:

REF*/

下面的程序是求下式的和:

s=1+1/(1+2)+1/(1+2+3)+……+1/(1+2+3+……+n)

请改正程序中的错误,并运行修改后的程序,当n=80时,给出程序运行结果(按四舍五入保留6位小数)。

#include

#include

floatfun(intn)

{inti;

floats=1.0,t=1.0;

for(i=2;i<=n;i--)

{t=t+i;

s+=s+1/t;

}

returns;

}

main()

{printf("\n%f",fun(80));

}

/*REF:

1.975309:

REF*/

下面的程序中,函数fun的功能是:

根据形参m,计算下面公式的值。

T=1+1/(2*3)+1/(3*4)+......+1/(m*(m+1))

请改正程序中的错误,并运行改正后的程序。

当从键盘输入50时,给出程序运行的正确结果(按四舍五入保留6位小数)。

#include

#include

doublefun(intm)

{doublet=1.0;

inti=2;

for(i=2;i<=m;i++)

t+=1/(i*(i+1));

returnt;

}

main()

{intm;

clrscr();

printf("\n请输入一个整数:

");

scanf("%d",m);

printf("\n结果是:

%lf\n",fun(m));

}

/*REF:

1.480392:

REF*/

下面的程序是求1000以内的最大的20个素数之和。

请修改程序中的错误,使它能得出正确的结果,并给出正确结果。

#include

#include

#include

intfun(inthigh)

{intsum=0,n=0,j,yes;

while((high>=2)||(n<10))

{yes=1;

for(j=2;j<=sqrt(high);j++)

if(high%j==0)

yes=0;break;

if(yes){sum+=high;n++;}

high--/*REF:

3675:

REF*/

下面的程序是计算如下公式的A25值。

A1=1,A2=1/(1+A1),A3=1/(1+A2),A4=1/(1+A3),......

请改正程序中的错误,并给出程序运行的正确结果(按四舍五入保留10位小数)。

#include

#include

doublefun(intn)

{doubleA=1.0;inti;

for(i=2;i<=n;i++)

A+=1.0/(1+A);

returnA;

}

main()

{clrscr();

printf("%12.10ld\n",fun(25));

}

/*REF:

0.6180339888:

REF*/

下面的程序是求[100,999]之间所有的素数的个数。

请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。

#include

#include

#include

intprime(intn)

{intyes,i;

if(n<=1){return0;}

yes=1;

for(i=2;i<=sqrt(n);i++)

if(n%i!

=0){yes=0;break;}

returnyes;

}

main()

{intcount=0,i;

clrscr();

for(i=100;i<999;i++)/*REF:

143:

REF*/

以下程序求10000以内最大的完全数,请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。

"完全数"是指:

一个数如果刚好与它所有的真因子(不包括该数本身)之和相等,如:

6=1+2+3,则6就是一个完全数。

#include

#include

#include

main()

{

intn,m,s,k,big;

s=1;

for(n=3;n<=10000;n++)

{

k=n/2+1;

for(m=1;m

if(n%m==0)

s+=m;

if/*REF:

8128:

REF*/

下面的程序是求表达式的值:

s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+

(1*2*3*....*n)/(3*5*7*.....(2*n+1))

请修改程序中的错误,并运行修改后的程序。

当n=20时,程序的运行结果(按四舍五入保留10位小数)。

#include

#include

#include

doublefun(intn)

{doubles,t;inti;

s=0.0;t=1.0;

for(i=1;i<=n;i--)

{t=t*i/(2*i+1);

s+=t;

}

returns;

}

main()

{printf("\n%12.10lf",fun(20));

}

/*REF:

1.5707961494:

REF*/

下面程序是求[1,100]之间的所有整数的立方和。

请修改程序中的错误,使它能得出正确的结果,并给出正确结果,填入相应窗口。

#include

#include

#include

main()

{

intsum;

inti;

sum=0;

for(i=1;i<100;i++)

{

sum+=i*i*i;

}

clrscr();

printf("%ld\n",sum);

}

/*REF:

25502500:

REF*/

下面的程序是计算:

s=f(-28)+f(-27)+......+f(-1)+f(0)+f

(1)+......+f(28)

的值。

其中函数定义如下:

f(x)=(x+1)/(x-2)ifx>1

f(x)=0ifx=0orx=2

f(x)=(x-1)/(x-2)ifx<0

请改正程序中的错误,并给出正确程序的运行结果(按四舍五入保留6位小数)。

#include

#include

#include

doublef(doublex)

{if(x==0||x==2)

return0.0;

elseif(x<0.0)

return(x+1)/(x-2);

else

return(x-1)/(x-2);

}

doublefsum(intn)

{inti;doubles=0.0,y;

for(i=-n;i<=n;i--)

{y=f(1.0*/*REF:

61.068272:

REF*/

下面的程序是求[10,1500]之间能被7整除的奇数的个数。

请改正程序中的错误,并运行修改后的程序,给出正确结果。

#include

#include

main()

{

inti,count=0;

for(i=10;i<=1500;i++)

{

if(i%2!

=0&&i%7==0)

{

count+=i;

}

}

printf("\nthenumberis%d",count);

}

/*REF:

106:

REF*/

下列程序的功能是求出以下分数序列的前28项之和,

2/1,3/2,5/3,8/5,13/8,21/13,......

请改正程序中的错误,并运行修改后程序,给出程序结果(按四舍五入保留6位小数)。

#include

#include

fun(intn)

{longa,b,c;

intk;doubles;

s=0.0;a=2;b=1;

for(k=1;k<=n;k++)

{s=s+(double)a/b;

c=a;a=a+b;b=c;

}

returns;

}

main()

{intn=28;

clrscr();

printf("\nresult:

%ld\n",fun(n));

}

/*REF:

45.604533:

REF*/

下面的程序是求1000以内的最大的20个素数之和。

请修改程序中的错误,使它能得出正确的结果,并给出正确结果。

#include

#include

#include

intfun(inthigh)

{intsum=0,n=0,j,yes;

while((high>=2)||(n<10))

{yes=1;

for(j=2;j<=sqrt(high);j++)

if(high%j==0)

yes=0;break;

if(yes){sum+=high;n++;}

high--/*REF:

18580:

REF*/

下面的程序是求如下表达式的值。

S=sqrt(ln

(1)+ln

(2)+ln(3)+......+ln(n))

请改正程序中的错误,并运行修改后的程序,当n=20时,给出程序运行结果(保留6位小数)。

#include

#include

#include

intfun(intn)

{doubles=0.0;inti;

for(i=1;i<=n;i++)

s+=log(1.0*i);

s=sqrt(s);

returns;

}

main()

{clrscr();

printf("%ld\n",fun(20));

}

/*REF:

6.506383:

REF*/

例程序中,函数fun的功能是:

计算并输出k以内的最大的10个能被13和17整除的自然数之和。

请改正程序中的错误,并运行正确的程序。

当从键盘输入2500时,给出程序运行的正确结果

#include

#include

intfun(intk)

{intm=0,mc=0,j;

while((k>=2)&&mc<10)

{if((k%13==0)||(k%17==0))

{m=m+k;mc++;}

k--;

}

return;

}

main()

{intk;

clrscr();

printf("\n请输入整数:

");

scanf("%d",&k);

printf("\n结果/*REF:

14365:

REF*/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2