while循环结构例题教学提纲.docx

上传人:b****2 文档编号:24109463 上传时间:2023-05-24 格式:DOCX 页数:21 大小:17.30KB
下载 相关 举报
while循环结构例题教学提纲.docx_第1页
第1页 / 共21页
while循环结构例题教学提纲.docx_第2页
第2页 / 共21页
while循环结构例题教学提纲.docx_第3页
第3页 / 共21页
while循环结构例题教学提纲.docx_第4页
第4页 / 共21页
while循环结构例题教学提纲.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

while循环结构例题教学提纲.docx

《while循环结构例题教学提纲.docx》由会员分享,可在线阅读,更多相关《while循环结构例题教学提纲.docx(21页珍藏版)》请在冰豆网上搜索。

while循环结构例题教学提纲.docx

while循环结构例题教学提纲

 

while循环结构例题

引子

#include"stdio.h"

main()

{inti=1;

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

printf(“%d\t”,i);

}

题型1输入输出多个数据

eg1、输出1~10000之间所有的整数

#include"stdio.h"

main()

{inti=1;

while(i<=1000)

{printf(“%d\t”,i);

i++;}

}

拓展:

1、换成所有的奇数

2、换成所有的偶数

 

题型2有限个数连加和连乘

eg2.1、求1+2+3+4+………+100的值

#include"stdio.h"

main()

{inti=1,s=0;

while(i<=100)

{s=s+i;

i++;}

printf(“%d\n”,s);

}

拓展:

1、求1+2+3+4+………+n的值

2、求12+22+32+………+n2的值

3、求1+1/2+1/3+………+1/n的值

eg2.2、求n!

的值

#include"stdio.h"

main()

{inti=1,n,p=1;

scanf(“%d”,&n);

while(i<=n)

{p=p*i;

i++;}

printf(“%d\n”,p);

}

拓展:

求1!

+2!

+3!

+………+n!

的值

#include"stdio.h"

main()

{inti=1,n,p=1,s;

scanf(“%d”,&n);

while(i<=n)

{p=p*i;

s=s+p;

i++;}

printf(“%d\n”,s);

}

题型3无限个数连加

eg3、求1-1/3+1/5-1/7+………的近似值,要求精度要达到10-4

#include"stdio.h"

#include"math.h"

main()

{floatn=1,s=0,f=1,t=1;

while(fabs(t)>=1e-4)

{t=f/(2*n-1);

s=s+t;

f=-f;

n++;}

printf(“%f\n”,s);

}

拓展:

求1-1/2+1/4-1/6+………的近似值,要求精度要达到10-4

题型4统计

eg4.1、输入20个数,统计其中正数、负数和零的个数。

#include"stdio.h"

main()

{inti=1,n,p,z;

floatx;

p=n=z=0;

while(i<=20)

{scanf(“%f”,&x);

if(x>0)

p++;

else

if(x<0)

n++;

else

z++;

i++;

}

printf(“%d\t%d\t%d\n”,p,n,z);

}

拓展:

统计各类字符的个数

eg4.2个位为6且能被3整除的五位数有多少?

方法1

#include"stdio.h"

main()

{longi=10000,c=0;

while(i<=99999)

{

if((i%3==0)&&(i%10==6))

c++;

i++;

}

printf(“%d\n”,c);

}

方法2

#include"stdio.h"

main()

{longi=10006,c=0;

while(i<=99999)

{

if(i%3==0)

c++;

i=i+10;

}

printf(“%d\n”,c);

}

题型5数列

eg5输出fibo数列的第20位数字

#include"stdio.h"

main()

{intf1=1,f2=1,f3,i=3;

while(i<=20)

{f3=f1+f2;

f1=f2;

f2=f3;

i++;}

printf(“%d\n”,f3);

}

拓展:

输出fibo数列前20位数字

#include"stdio.h"

main()

{intf1=1,f2=1,f3,i=3;

printf(“%d\t%d\t”,f1,f2);

while(i<=20)

{f3=f1+f2;

f1=f2;

f2=f3;

printf(“%d\t”,f3);

i++;}

}

题型6数据的逆序输出

eg6任意给定一个正整数,个位数字逆序输出。

#include"stdio.h"

main()

{longx,t;

scanf(“%ld”,&x);

while(x!

=0)

{t=x%10;

x=x/10;

printf(“%d”,t);}

}

题型7公约数与公倍数

eg7任意输入两个正整数,求其最大公约数和最小公倍数。

#include"stdio.h"

main()

{intm,n,a,b,r,t;

scanf(“%d%d”,&m,&n);

if(m>n){a=m;b=n;}

else{a=n;b=m;}

while(b!

=0)

{r=a%b;

a=b;

b=r;}

printf(“zuidagongyushushi:

%d\n”,a);

printf(“zuixiaogongbeishushi:

%d\n”,m*n/a);

}

题型8素数问题

eg8从键盘上任意输入一个正整数,判断其是否为素数。

#include"stdio.h"

main()

{intx,i=2;

scanf(“%d”,&x);

while(x%i!

=0)i++;

if(x==i)printf(“shi!

”);

elseprintf(“fou!

”);

}

题型9高次方程的根

eg9.1用二分迭代法求解方程y=2x3-4x2+3x-6=0在(-10,10)之间的根,要求精度10-5

#include"stdio.h"

#include"math.h"

main()

{

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*y1>0)

x1=x;

else

x2=x;

x=(x1+x2)/2;

y=2*x*x*x-4*x*x+3*x-6;

}

printf("therootis%f\n",x);}

eg9.2用牛顿迭代法求解方程2x3+4x2-7x-6=0在x=1.5附近的根,要求精度10-5

#include"stdio.h"

#include"math.h"

main()

{

floatx,x0,y,y1;

x=1.5;

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%f\n",x);}

牛顿迭代公式:

xn+1=xn-f(xn)/f’(xn)

do-while循环结构举例

#include"stdio.h"

main()

{inti=1,s=0;

do

{s=s+i;

i++;}while(i<=100);

printf(“%d\n”,s);

}

for循环结构举例

f1

#include"stdio.h"

main()

{inti=1,s=0;

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

s=s+i;

printf(“%d\n”,s);

}

f2

#include"stdio.h"

main()

{

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

#include"stdio.h"

main()

{

inti;

floata,max;

scanf("%f",&a);

max=a;

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

{scanf("%f",&a);

if(max

max=a;

}

printf("%f\n",max);

}

f4

#include"stdio.h"

main()

{

inti,s=1;

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

s=2*(s+1);

printf("%d\n",s);

}

 

#include"stdio.h"

main()

{

intx,n=0,s=0;

while(n<10)

{

scanf("%d",&x);

if(x<0)break;

s+=x;

n++;

}

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

}

 

#include"stdio.h"

main()

{

intx,n=0,s=0;

while(n<10)

{

scanf("%d",&x);

if(x<0)continue;

s+=x;

n++;

}

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

}

 

#include"stdio.h"

main()

{

intx,n=0,s=0;

while(n<10)

{

scanf("%d",&x);

n++;

if(x<0)continue;

s+=x;

}

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

}

 

#include"stdio.h"

main()

{

inti=2,m;

scanf("%d",&m);

while(m%i!

=0)

i++;

if(i==m)

printf("%dshisushu!

\n",m);

else

printf("%dbushisushu!

\n",m);

}

 

#include"stdio.h"

main()

{

inti,m;

scanf("%d",&m);

for(i=2;m%i!

=0;i++);

if(i==m)

printf("%dshisushu!

\n",m);

else

printf("%dbushisushu!

\n",m);

}

 

#include"stdio.h"

main()

{inti,m;

scanf("%d",&m);

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

if(m%i==0)break;

if(i==m)

printf("%dshisushu!

\n",m);

else

printf("%dbushisushu!

\n",m);

}

 

#include"stdio.h"

#include"math.h"

main()

{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);

else

printf("%dbushisushu!

\n",m);

}

 

#include"stdio.h"

#include"math.h"

main()

{

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"stdio.h"

#include"math.h"

main()

{

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);}

}

 

#include

main()

{inti,j,s;

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

{s=0;

for(j=1;j

if(i%j==0)

s+=j;

if(i==s)

printf("%6d\n",s);

}

}

 

#include"stdio.h"

main()

{

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);

}

 

#include"stdio.h"

main()

{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);

}

 

#include"stdio.h"

main()

{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);}

}

 

#include"stdio.h"

main()

{

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);}

}

 

#include"stdio.h"

main()

{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");}

}

 

#include"stdio.h"

main()

{

inti;

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

printf("********\n");

}

 

#include"stdio.h"

main()

{

inti,j;

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

{

for(j=1;j<=5-i;j++)

printf("");

printf("********\n");

}

}

 

#include"stdio.h"

main()

{

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");

}

}

 

#include"stdio.h"

main()

{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");

}

}

 

#include"stdio.h"

main()

{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");

}

}

 

#include"stdio.h"

main()

{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");

}

}

 

#include"stdio.h"

main()

{inti,j,k,m,n,s=0;

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

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

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

{m=100*i+10*j+k;

n=100*k+10*j+i;

if((n>2*m)&&(n<3*m))

{s++;

printf("%d",m);

if(s%8==0)

printf("\n");}

}

}

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

当前位置:首页 > 工程科技 > 材料科学

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

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