while循环结构例题.docx
《while循环结构例题.docx》由会员分享,可在线阅读,更多相关《while循环结构例题.docx(18页珍藏版)》请在冰豆网上搜索。
![while循环结构例题.docx](https://file1.bdocx.com/fileroot1/2023-1/14/fe7800e8-59d9-49ed-86db-1cdee9721d20/fe7800e8-59d9-49ed-86db-1cdee9721d201.gif)
while循环结构例题循环结构例题引子#includemain()inti=1;for(i=1;i=10000;i+)printf(“%dt”,i);题型1输入输出多个数据eg1、输出110000之间所有的整数#includemain()inti=1;while(i=1000)printf(“%dt”,i);i+;拓展:
1、换成所有的奇数2、换成所有的偶数题型2有限个数连加和连乘、求1+2+3+4+100的值#includemain()inti=1,s=0;while(i=100)s=s+i;i+;printf(“%dn”,s);拓展:
1、求1+2+3+4+n的值2、求12+22+32+n2的值3、求1+1/2+1/3+1/n的值、求n!
的值#includemain()inti=1,n,p=1;scanf(“%d”,&n);while(i=n)p=p*i;i+;printf(“%dn”,p);拓展:
求1!
+2!
+3!
+n!
的值#includemain()inti=1,n,p=1,s;scanf(“%d”,&n);while(i=1e-4)t=f/(2*n-1);s=s+t;f=-f;n+;printf(“%fn”,s);拓展:
求1-1/2+1/4-1/6+的近似值,要求精度要达到10-4题型4统计、输入20个数,统计其中正数、负数和零的个数。
#includemain()inti=1,n,p,z;floatx;p=n=z=0;while(i0)p+;elseif(x0)n+;elsez+;i+;printf(“%dt%dt%dn”,p,n,z);拓展:
统计各类字符的个数个位为6且能被3整除的五位数有多少方法1#includemain()longi=10000,c=0;while(i=99999)if(i%3=0)&(i%10=6)c+;i+;printf(“%dn”,c);方法2#includemain()longi=10006,c=0;while(i=99999)if(i%3=0)c+;i=i+10;printf(“%dn”,c);题型5数列eg5输出fibo数列的第20位数字#includemain()intf1=1,f2=1,f3,i=3;while(i=20)f3=f1+f2;f1=f2;f2=f3;i+;printf(“%dn”,f3);拓展:
输出fibo数列前20位数字#includemain()intf1=1,f2=1,f3,i=3;printf(“%dt%dt”,f1,f2);while(in)a=m;b=n;elsea=n;b=m;while(b!
=0)r=a%b;a=b;b=r;printf(“zuidagongyushushi:
%dn”,a);printf(“zuixiaogongbeishushi:
%dn”,m*n/a);题型8素数问题eg8从键盘上任意输入一个正整数,判断其是否为素数。
#includemain()intx,i=2;scanf(“%d”,&x);while(x%i!
=0)i+;if(x=i)printf(“shi!
”);elseprintf(“fou!
”);题型9高次方程的根用二分迭代法求解方程y=2x3-4x2+3x-6=0在(-10,10)之间的根,要求精度10-5#include#includemain()floatx1=10,x2=-10,x,y,y1;x=(x1+x2)/2;y=2*x*x*x-4*x*x+3*x-6;while(fabs(y)1e-5)y1=2*x1*x1*x1-4*x1*x1+3*x1-6;if(y*y10)x1=x;elsex2=x;x=(x1+x2)/2;y=2*x*x*x-4*x*x+3*x-6;printf(therootis%fn,x);用牛顿迭代法求解方程2x3+4x2-7x-6=0在x=附近的根,要求精度10-5#include#includemain()floatx,x0,y,y1;x=;while(fabs(x-x0)1e-5)x0=x;y=2*x0*x0*x0+4*x0*x0-7*x0-6;y1=6*x0*x0+8*x0-7;x=x0-y/y1;printf(therootis%fn,x);牛顿迭代公式:
xn+1=xn-f(xn)/f(xn)do-while循环结构举例#includemain()inti=1,s=0;dos=s+i;i+;while(i=100);printf(“%dn”,s);for循环结构举例f1#includemain()inti=1,s=0;for(i=1;i=100;i+)s=s+i;printf(“%dn”,s);f2#includemain()inti,f1,f2,f3;f1=1;f2=1;printf(%d,%d,f1,f2);for(i=3;i=20;i+)f3=f1+f2;f1=f2;f2=f3;printf(,%d,f3);f3#includemain()inti;floata,max;scanf(%f,&a);max=a;for(i=1;i=9;i+)scanf(%f,&a);if(maxa)max=a;printf(%fn,max);f4#includemain()inti,s=1;for(i=9;i=1;i-)s=2*(s+1);printf(%dn,s);#includemain()intx,n=0,s=0;while(n10)scanf(%d,&x);if(x0)break;s+=x;n+;printf(s=%dn,s);#includemain()intx,n=0,s=0;while(n10)scanf(%d,&x);if(x0)continue;s+=x;n+;printf(s=%dn,s);#includemain()intx,n=0,s=0;while(n10)scanf(%d,&x);n+;if(x0)continue;s+=x;printf(s=%dn,s);#includemain()inti=2,m;scanf(%d,&m);while(m%i!
=0)i+;if(i=m)printf(%dshisushu!
n,m);elseprintf(%dbushisushu!
n,m);#includemain()inti,m;scanf(%d,&m);for(i=2;m%i!
=0;i+);if(i=m)printf(%dshisushu!
n,m);elseprintf(%dbushisushu!
n,m);#includemain()inti,m;scanf(%d,&m);for(i=2;i=m;i+)if(m%i=0)break;if(i=m)printf(%dshisushu!
n,m);elseprintf(%dbushisushu!
n,m);#include#includemain()inti,m,s;scanf(%d,&m);s=sqrt(m);for(i=2;i=s;i+)if(m%i=0)break;if(i=s+1)printf(%dshisushu!
n,m);elseprintf(%dbushisushu!
n,m);#include#includemain()inti,j;for(i=100;i=200;i+)for(j=2;j=i;j+)if(i%j=0)break;if(j=i)printf(%-10d,i);#include#includemain()inti,j,s;for(i=100;i=200;i+)s=sqrt(i);for(j=2;j=s;j+)if(i%j=0)break;if(j=s+1)printf(%-10d,i);#includemain()inti,j,s;for(i=2;i=10000;i+)s=0;for(j=1;ji;j+)if(i%j=0)s+=j;if(i=s)printf(%6dn,s);#includemain()inti,j,k;for(i=0;i=35;i+)for(j=0;j=35;j+)if(i+j=35)&(2*i+4*j=94)printf(ni=%-10dj=%-10d,i,j);#includemain()inti,j,k;for(i=0;i=19;i+)for(j=0;j=33;j+)for(k=0;k=100;k+)if(i+j+k=100)&(5*i+3*j+k/3=300)printf(ni=%-10dj=%-10dk=%-10d,i,j,k);#includemain()inti,j,k;for(i=0;i=19;i+)for(j=0;j=33;j+)k=100-i-j;if(15*i+9*j+k=300)printf(ni=%-10dj=%-10dk=%-10d,i,j,k);#includemain()inti,j,k;for(i=0;i=19;i+)for(j=0;j=33;j+)k=100-i-j;if(5*i+3*j+k/3=100)printf(ni=%-10dj=%-10dk=%-10d,i,j,k);#includemain()intm,n,k;for(m=1;m=9;m+)for(n=1;n=m;n+)printf(%d*%d=%-5d,n,m,n*m);printf(n);#includemain()inti;for(i=1;i=5;i+)printf(*n);#includemain()inti,j;for(i=1;i=5;i+)for(j=1;j=5-i;j+)printf();printf(*n);#includemain()inti,j;for(i=1;i=5;i+)for(j=1;j=20-i;j+)printf();for(j=1;j=i;j+)printf(*);printf(n);#includemain()inti,j;for(i=1;i=5;i+)for(j=1;j=20-i;j+)printf();for(j=1;j=2*i-1;j+)printf(*);printf(n);#includemain()inti,j;for(i=1;i=5;i+)for(j=1;j=i-1;j+)printf();for(j=1;j=11-2*i;j+)printf(*);printf(n);#includemain()inti,j;for(i=1;i=4;i+)for(j=1;j=4-i;j+)printf();for(j=1;j=2*i-1;j+)printf(*);printf(n);for(i=1;i=3;i+)for(j=1;j=i;j+)printf();for(j=1;j=7-2*i;j+)printf(*);printf(n);#includemain()inti,j,k,m,n,s=0;for(i=0;i=2;i+)for(j=0;j=9;j+)for(k=1;k2*m)&(n3*m)s+;printf(%d,m);if(s%8=0)printf(n);