编程作业答案循环结构2次.docx

上传人:b****6 文档编号:8561265 上传时间:2023-01-31 格式:DOCX 页数:11 大小:16.57KB
下载 相关 举报
编程作业答案循环结构2次.docx_第1页
第1页 / 共11页
编程作业答案循环结构2次.docx_第2页
第2页 / 共11页
编程作业答案循环结构2次.docx_第3页
第3页 / 共11页
编程作业答案循环结构2次.docx_第4页
第4页 / 共11页
编程作业答案循环结构2次.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

编程作业答案循环结构2次.docx

《编程作业答案循环结构2次.docx》由会员分享,可在线阅读,更多相关《编程作业答案循环结构2次.docx(11页珍藏版)》请在冰豆网上搜索。

编程作业答案循环结构2次.docx

编程作业答案循环结构2次

循环结构程序设计作业答案

1、题目:

求1!

+2!

+3!

+……+n!

的和。

由键盘输入n值,并输出运算结果。

例如:

若n值为10,则结果为4037913。

#include

longfun(intn)

{/**********Program**********/

inti;

longf=1,s=0;

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

{f=f*i;

s=s+f;

}

returns;

/**********End**********/

}

main()

{inti,n;

longintresult;

scanf("%d",&n);

result=fun(n);

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

}

2、素数问题:

(1)从键盘输入一个大于3的整数,判断其是否素数,然后输出相应的结论信息。

例如:

7是素数,8不是素数。

素数是仅能被1和自身整除的数。

main()

{intm,flag;

printf("inputaninteger:

");

scanf("%d",&m);

flag=fun(m);

if(flag)

printf("%disaprime.\n",m);

else

printf("%disnotaprime.\n",m);

}

intfun(intn)

{/**********Program**********/

inti;

intj;

j=1;

for(i=2;i

if(n%i==0)

{j=0;

break;

}

returnj;

/**********End**********/

}

(2)求给定正整数m以内的素数之和。

例如:

当m=20时,函数值为77。

intfun(intm)

{/**********Program**********/

inti,k,s=0;

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

{for(k=2;k

if(i%k==0)break;

if(k==i)s=s+i;

}

returns;

/**********End**********/

}

main()

{inty;

y=fun(20);

printf("y=%d\n",y);

}

(3)求出100到200之间的素数的个数。

main()

{intm,k=0;

for(m=100;m<200;m++)

if(fun(m))

{printf("%4d",m);

k++;

if(k%5==0)

printf("\n");

}

printf("k=%d\n",k);

}

intfun(intm)

{/**********Program**********/

inti,k=1;

if(m<=1)k=0;

for(i=2;i

if(m%i==0)k=0;

returnk;

/**********End**********/

}

(4)用随机函数产生20个[15,70]上的整数,求其中的素数。

#include"stdlib.h"

#include"stdio.h"

intprime(intn)

{/**********Program**********/

inti,t=1;

for(i=2;i

if(n%i==0)t=0;

return(t);

/**********End**********/

}

main()

{inta[20],i,s;

clrscr();

for(i=0;i<20;i++)

{a[i]=random(56)+15;

if(prime(a[i]))printf("%4d",a[i]);

}

}

3、计算并输出给定整数n的所有因子之和(不包括1与自身)。

规定n的值不大于1000。

例如:

n的值为855时,应输出704。

intfun(intn)

{/**********Program**********/

ints=0,i;

for(i=2;i

if(n%i==0)

s=s+i;

returns;

/**********End**********/

}

main()

{

printf("s=%d\n",fun(855));

}

4、求一个四位数的各位数字的立方和。

intfun(intn)

{/**********Program**********/

intd,k,s=0;

while(n>0)

{d=n%10;

s+=d*d*d;

n/=10;

}

returns;

/**********End**********/

}

main()

{intk;

k=fun(1234);

printf("k=%d\n",k);

}

5、求1到100之间的偶数之积。

doublefun(intm)

{/**********Program**********/

doubley=1;

inti;

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

if(i%2==0)

y*=i;

returny;

/**********End**********/

}

main()

{

printf("ji=%e\n",fun(100));

}

6、求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。

每一分数的分母是前两项的分母之和

每一分数的分子是前两项的分子之和

例如:

求前20项之和的值为32.660259。

floatfun(intn)

{/**********Program**********/

inti;

floatf1=1,f2=1,f3,s=0;

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

{f3=f1+f2;

f1=f2;

f2=f3;

s=s+f2/f1;

}

returns;

/**********End**********/

}

main()

{floaty;

y=fun(20);

printf("y=%f\n",y);

}

7、求任意两个整数m和n的最大公因子。

例如,m=21,n=7,则输出结果为7。

main()

{intm,n,r;

printf("请输入整数m和n:

\n");

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

r=fun(m,n);

printf("最大公因子是:

%d\n",r);

}

intfun(intx,inty)

{/**********Program**********/

intq;

if(x

{

q=x;x=y;y=q;

}

while(y)

{q=x%y;

x=y;

y=q;

}

returnx;

/**********End**********/

}

8、题目:

编写程序求无理数e的值并输出。

e=1+1/1!

+1/2!

+1/3!

+......+1/n!

直到1/n!

<0.000001时e=2.718254。

main()

{floatfun();

printf("无理数e的值是:

%f\n",fun());

}

floatfun()

{/**********Program**********/

inti,j,k;

floate,jc;

i=1;

e=0.0;

jc=1.0;

while(jc>=0.000001)

{

e=e+jc;

j=1;

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

j=j*k;

jc=1.0/(float)j;

i++;

}

returne;

/**********End**********/

}

9、求任一整数m的n次方。

main()

{intm,n;

longs;

longfun(int,int);

printf("输入m和n的值:

");

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

s=fun(m,n);

printf("s=%ld\n",s);

}

longfun(intm,intn)

{/**********Program**********/

longintx=1;

inti;

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

x=x*m;

returnx;

/**********End**********/

}

10、求1000以内所有7的倍数之和。

#defineN1000

main()

{intsum;

sum=fun(7);

printf("%d以内所有%d的倍数之和为:

%d\n",N,7,sum);

}

fun(intm)

{/**********Program**********/

ints=0,i;

for(i=1;i

if(i%m==0)

s+=i;

returns;

/**********End**********/

}

11、求满足条件:

个、十、百三位数字之积为42,个、十、百三位数字之和为12的所有三位整数。

main()

{printf("满足条件的三位整数分别是:

\n");

fun();

}

fun()

{/**********Program**********/

inti,j,k;

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

for(j=0;j<=9;j++)

for(k=0;k<=9;k++)

if(i*j*k==42&&i+j+k==12)

printf("%d%d%d\t",i,j,k);

/**********End**********/

}

12、将一个正整数的各位数字颠倒后输出。

例如原数为12345,应输出54321。

main()

{inti;

printf("输入一个正整数:

");

scanf("%d",&i);

fun(i);

}

fun(intn)

{/**********Program**********/

intr;

do{

r=n%10;

printf("%d",r);

}while((n=n/10)!

=0);

printf("\n");

/**********End**********/

}

13、求sum=d+dd+ddd+……+dd...d(n个d),

其中d为1-9的数字。

例如3+33+333+3333+33333(此时d=3,n=5)。

main()

{intd,n;

longsum,fun();

printf("d=");

scanf("%d",&d);

printf("n=");

scanf("%d",&n);

sum=fun(d,n);

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

}

longintfun(intd,intn)

{/**********Program**********/

longints=0,t=0;

inti;

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

{t=t+d;

s=s+t;

d=d*10;

}

returns;

/**********End**********/

}

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1