c语言第三次作业(循环),C语言第三次作业(循环)参考答案.doc

C语言第三次作业(循环结构)参考答案

1. 求Sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/(2n))其中n的值由键盘获得。

#include

#include

int main()

{

int n,i;

double SN=0;

printf("请输入n的值:");

scanf("%d",&n);

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

SN+=1.0/(2*n-1)-1.0/(2*n);

printf("SN=%lf\n",SN);

return 0;

}

2.求S=aa….a -… -aaa - aa - a的值,其中a=3,n=6。

例如:22222-2222-222-22-2(例如:a=2,n=5)

#include

#include

int main()

{

int i,s=0,t=0,a,n;

scanf("%d,%d",&a,&n);

for(i=0;i

t=t*10+a;

s=t;

printf("%d",s);

for(i=1;i

{ t=t/10;

s=s-t;

}

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

return 0;

}

3..根据以下公式求∏的值(要求满足精度0.0005,即某项小于0.0005时停止迭代)∏/2=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+(1*2*3*4)/(3*5*7*9)+…+(1*2*3*4*…*n)/(3*5*7*9*…*(2n+1))程序运行后,如果输入精度0.0005,则程序输出为3.140578。

#include

#include

int main()

{

int n=1;

double t=1.0,pi=0.0;

while(t>=0.0005)

{ pi+=t;

t=t*n/(2*n+1);

n++;

}

pi=2*pi;

printf("pi=%lf\n",pi);

return 0;

}

4.输出1至100之间每位数的乘积大于每位数的和的数

#include

int main()

{int n,k=1,s=0,m;

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

{ k=1;s=0;

m=n;

while(m)

{k*=m%10;

s+=m%10;

m/=10;

}

if(k>s) printf("%d ",n);

}

}

5.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,因此6是“完数”。编程序找出1000之内的所有完数及这些完数之和,并按下面格式输出因子:6的因子是1,2,3 …… 完数和是…。

#include

int main()

{ int a,s,sum=0,i;

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

{ s=0;

for(i=1;i<=a/2;i++)

if(a%i==0)s=s+i;

if(s==a)

{printf("%d的因子是:",a);sum=sum+a;

for(i=1;i<=a/2;i++)

if( a%i==0) printf("%d,",i);

printf("\n");

}

}

printf("完数和是%d。\n",sum);

return 0;

}

6. 有一数列:

2/1,3/2,5/3,8/5,13/8,21/13,…求出这个数列的前20项之和。

#include

int main()

{int i,t ,n=20;

float a=2,b=1,s=0;

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

{s=s+a/b;

t=a;a=a+b;b=t;}

printf("前20项的合是%7.2f",s);

}

7. 大于m且紧靠m的k个素数打印出来。

例如,若输入m=17, k=5 ,则应输出“19,23,29,31,37”。

#include

int main()

{

int m,k,n,i=0,flag;

printf("请输入m和k的值:");

scanf("%d %d",&m,&k);

printf("素数是:");

while(i

{m=m+1;flag=1;

for(n=2;n<=m/2;n++)

if(m%n==0) {fl

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值