循环结构程序设计.doc_第1页
循环结构程序设计.doc_第2页
循环结构程序设计.doc_第3页
循环结构程序设计.doc_第4页
循环结构程序设计.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

循环结构程序设计1、求1+4+7+100之和。解法1:main()int s,i;s=0;for(i=1;i=100;i+=3) s=s+i;printf(s=%dn,s);解法2:main()int s,i; s=0;i=1;while(i=100)s=s+i; i+=3;printf(s=%dn,s);2、求1到100之间的奇数之和与偶数之和。解法1:main()int s1,s2,i;s1=s2=0;for(i=1;i=100;i+)if(i%2=1) s1=s1+i; /*奇数之和*/ else s2=s2+i; /*偶数之和*/printf(s1=%d,s2=%dn,s1,s2);解法2:main()int s1,s2,i;s1=s2=0;for(i=1;i=99;i+=2) s1=s1+i; /*奇数之和*/for(i=2;i=100;i+=2) s2=s2+i; /*偶数之和*/printf(s1=%d,s2=%dn,s1,s2);解法3:main()int s1,s2,i;s1=s2=0;i=1;while(i=99)s1=s1+i; /*奇数之和*/ i+; s2=s2+i; /*偶数之和*/ i+;printf(s1=%d,s2=%dn,s1,s2);3、用循环程序求10的阶乘。main()long p; /*int型取值范围太小*/int i;p=1; /*不能写作p=0;*/for(i=1;i=10;i+) p=p*i;printf(p=%ldn,p);4、求1*3*5*.*19之积。main()float p;int i;p=1;for(i=1;i=19;i+=2) p=p*i;printf(p=%fn,p);5、从键盘输入一个正整数n,求1+2+3+.+n之和并输出。main()int i,n;long s;s=0;scanf(%d,&n);for(i=1;i=n;i+) s=s+i;printf(s=%ldn,s);6、从键盘输入一个正整数,求出其阶乘并输出。解法1:main()float p;int i,k;p=1;scanf(%d,&k);for(i=1;i=1)p=p*k; k-;printf(p=%fn,p);6A、求1-1/3+1/5-1/7+.-1/99+1/101之和。解法1:main()float s1,s2,s;int i;s1=s2=0;for(i=1;i=101;i+=4) s1=s1+1.0/i; /*正数之和*/for(i=3;i=99;i+=4) s2=s2+1.0/i; /*负数之和*/s=s1-s2;printf(s=%fn,s);解法2:main()int i,p;float s;s=0;p=1; for(i=1;i=101;i+=2) s=s+p*1.0/i; /*p用于控制累加项的正负*/ p=-p; /*改变正负号*/ printf(s=%fn,s);6B、求20+21+22+.+263之和。解法1:#include main()float s;int i;s=0;for(i=0;i=63;i+) s=s+pow(2,i); /*2的i次幂*/printf(s=%fn,s);解法2:main()float s,t;int i;s=0;t=1;for(i=0;i=63;i+) s=s+t; t=t*2; printf(s=%fn,s);7、求12+32+52+.+992之和。main()long s;int i;s=0;for(i=1;i=99;i+=2) s=s+i*i;printf(s=%ldn,s);8、求1+1/3+1/5+.+1/99之和。main()int i;float s;s=0;for(i=1;i=99;i+=2) s=s+1.0/i; /*不能写作1/i*/printf(s=%fn,s);9、求1+1/3+1/5+.的前20项之和。main()int i;float s;s=0;for(i=1;i=1e-6)s=s+1.0/n; /*不能写作1/n*/ n+=2;printf(s=%fn,s);11、已知序列1/2,2/3,3/5,5/8,.,求其前20项之和。解法1:main()float s,a,b,t;int i;s=0;a=1;b=2;for(i=1;i=20;i+)s=s+a/b; t=a; a=b; /*分子为前一项分母*/ b=b+t; /*分母为前一项分子分母之和*/ printf(s=%fn,s);解法2:main()float s,a,b;int i;s=0;a=1;b=2;for(i=1;i=20;i+)s=s+a/b;b=a+b; /*分母为前一项分子分母之和*/ a=b-a; /*分子为前一项分母*/ printf(s=%fn,s);12、求1!+2!+3!+.+20!之和。解法1:main()float s,p;int n,k;s=0; /*该语句必须在外循环之前*/for(n=1;n=20;n+)p=1; /*该语句必须在外循环体内部*/ for(k=1;k=n;k+) /*求n的阶乘*/ p=p*k; s=s+p; printf(s=%fn,s);解法2:main()float s,p;int n;s=0;p=1; /*该语句必须在循环之前*/for(n=1;n=20;n+)p=p*n; /*求n的阶乘*/ s=s+p; printf(s=%fn,s);13、求1!+5!+9!+.+21!之和。main()float s,p;int n,k;s=0; /*该语句必须在外循环之前*/for(n=1;n=21;n+=4)p=1; /*该语句必须在外循环体内部*/ for(k=1;k=1;g-)if(m%g=0)&(n%g=0) /*此时g是最大公约数*/ break; for(i=1;i=n;i+)h=i*m; /*h是m的倍数*/if(h%n=0) /*此时h是最小公倍数*/ break;printf(g=%d,h=%dn,g,h);15、求a+aa+aaa+.(如2+22+222+2222+22222)前n项之和。main()int a,n,i;long t,s; scanf(%d%d,&a,&n);t=a; for(i=1;i=n;i+)s=s+t; t=t*10+a; /*求得下一项*/printf(s=%ldn,s);16、从键盘输入一个正整数,将该数前后倒置后输出。解法1:main()int a,d; scanf(%d,&a); while(a!=0)d=a%10; /*求得个位*/ printf(%1d,d); /*输出宽度为1*/ a=a/10; /*去掉原来的个位*/解法2:main()int a,b,d; scanf(%d,&a);b=0;/*b用于存放倒置之后的数*/ while(a!=0)d=a%10; /*求得个位*/ b=b*10+d; a=a/10; /*去掉原来的个位*/printf(%dn,b);17、求出所有的水仙花数(各位数字立方之和等于数本身的三位整数)并输出。main()int x,a,b,c; for(x=100;x=999;x+)a=x/100; /*x的百位*/ b=x%100/10; /*x的十位*/ c=x%10; /*x的个位*/ if(a*a*a+b*b*b+c*c*c=x) printf(%dn,x); 18、从键盘输入一个正整数,判断是否是完数(真因子之和等于数本身)。main()int m,s,i; scanf(%d,&m); s=0;for(i=1;i=m-1;i+) if(m%i=0) /*求出所有真因子*/ s=s+i; if(s=m) printf(%d is a complete number.n,m);else printf(%d isnt a complete number.n,m);19、用双重循环打印如下图形。 * *#define N 4main()int i,j,k;for(i=1;i=N;i+)for(j=1;j=N-i;j+) printf( ); /*打印N-i个空格*/for(k=1;k=2*i-1;k+) printf(*); /*打印2*i-1个星号*/printf(n);20、用双重循环打印如下图形。 * * * *解法1:main()int i,j,k;for(i=1;i=4;i+) /*输出前4行*/for(j=1;j=4-i;j+) printf( );for(k=1;k=1;i-) /*输出后3行*/for(j=1;j=4-i;j+) printf( );for(k=1;k=2*i-1;k+) printf(*);printf(n);解法2:main()int i,j,k;for(i=1;i=4;i+) /*输出前4行*/for(j=1;j=4-i;j+) printf( );for(k=1;k=2*i-1;k+) printf(*);printf(n);for(i=1;i=3;i+) /*输出后3行*/for(j=1;j=i;j+) printf( ); for(k=1;k=2*(4-i)-1;k+) printf(*);printf(n);21、从键盘输入一个正整数,判断其是否是素数。解法1:main()int m,i;scanf(%d,&m);for(i=2;im-1) printf(%d是一个素数.n);else printf(%d不是一个素数.n);解法2:#include main()int m,i,k;scanf(%d,&m);k=sqrt(m);for(i=2;ik) printf(%d is a prime number.n);else printf(%d is not a prime number.n);解法3:#include main()int m,i,k;scanf(%d,&m);k=sqrt(m);for(i=2;i=k;i+) if(m%i=0) printf(%d is not a prime numbern,m); return; /*退出main函数*/ printf(%d is a prime numbern,m);解法4:#include main()int m,i,k,flag=0; /*flag是标志变量,flag=0表示不能整除*/scanf(%d,&m);k=sqrt(m);for(i=2;i=k;i+) if(m%i=0) flag=1; /*能除尽则不是素数*/ break; if(flag=0) printf(%d是一个素数.n);else printf(%d不是一个素数.n);22、从键盘输入一行字符,若为小写字母,则转化为大写字母;若为大写字母,则转化为小写字母;否则转化为ASCII码表中的下一个字符。解法1:#include main()char ch;ch=getchar();while(ch!=n)if(ch=a&ch=A&ch=Z) /*此处else不能缺省*/ ch=ch+32; else ch=ch+1; putchar(ch); ch=getchar();解法2:#include main()char ch;while(ch=getchar()!=n) /*先赋值再判断*/if(ch=a&ch=A&ch=Z) /*此处else不能缺省*/ ch=ch+32;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论