第4章循环结构程序设计2课件_图文

第4章 循环结构程序设计
4.1 循环语句的四种循环格式 4.1.1 goto 格式 <标示符: > if <表达式>
{ <循环体;> goto <标示符;> }

2019年7月23日7时19分

1

例: 计算s=1+2+3+……+50
#include <iostream.h> main() {int i=0, s=0; loop: if (i<51)
{ s=s+i; i=i+1; goto loop;}
cout<<"s="<<s<<endl; }

2019年7月23日7时19分

2

4.1.2 while格式 while <表达式> { <循环体>; }
例: 计算 s=1+2+3+……+50

2019年7月23日7时19分

3

#include <iostream.h>

main()

{int i=0, s=0;

while (i<50)

{

i=i+1;

s=s+i;

}

cout<<"s="<<s<<endl;

}

2019年7月23日7时19分

4

4.1.3 do--- while格式 do { <循环体>; } while <表达式;>

例: 计算 s=1+2+3+……+50

2019年7月23日7时19分

5

#include <iostream.h> main()
{static int i, s; do { s=s+i;
i=i+1; } while (i<51); cout<<"s="<<s<<endl; }

2019年7月23日7时19分

6

4.1.4 for( ) 格式 for(<表达式1>;<表达式2>;<表达式3>)
{ <循环体> } 说明:
1. <表达式1>决定了循环的初值, <表达式2> 决定循环的条件, <表达式3>决定循环的增 量。
2. <表达式1>在循环中只执行一次。<表达式 2>,<表达式3>在循环中每次都要执行一次。

2019年7月23日7时19分

7

例:求S=1+2+3+……+100 程序1: #include <iostream.h> main() {int i, s=0; for (i=1; i<101; i++) s+=i; cout<<“sum=”<<s<<endl; }

8

2019年7月23日7时19分

程序2: #include <iostream.h> main() { int i=1, s; for (s=0; i<101; i++) s+=i; cout<<"sum="<< s<<endl; }

2019年7月23日7时19分

9

程序3: #include <iostream.h> main() {int i=1, s=0; for (; i<101;) s+=i++; cout<<"sum="<< s<<endl; }

10

2019年7月23日7时19分

程序4:
#include <iostream.h> main() { int i=1, s=0;
for (; i<101; s+=i++); cout<<"sum="<<s<<endl; }

2019年7月23日7时19分

11

程序5: #include <iostream.h> main() { int i=100, s=0; for (; i ; i--) s+=i ; cout<<"sum="<< s<<endl; }

2019年7月23日7时19分

12

例:编程计算下列各项

S=1+2+3+……+100

S=1+22+32+……+1002

S=1+3+5……+99

S=1+1/2+1/3+……+1/100

S=1/1+1/22+1/32+……+1/1002

n!=1*2*3*……*n

S=Σk!=1+2!+3!+……+n!

S=1-2+3+……+(-1)nn

S=1-1/2+1/3+……+(-1)n/n

S=1-22+32-……+(-1)n 1002

e=1+1/1!+1/2!+1/3!+……+1/n!直到最后一项小于

0.00001

13

2019年7月23日7时19分

ex=1+x/1!+x2/2!+x3/3!+……+xn/n!直到最后 一项小于0.001
s=1-1/2!+1/3!+……+(-)(n+1)/n! 直到最后一 项小于0.001
s=1+x+x/2!+x/3!+……+x/n! 直到最后一项 小于0.00001
s=1-x+x/2!-x/3!+……+(-)(n+1)x/n! 直到最 后一项小于0.001
π/4=1-1/3+1/5-1/7+…… 求π,直到最后一 项小于0.001

2019年7月23日7时19分

14

2. 循环可以从小向大,也可以从大到小。 例: 计算s=1+2+3+……+100
#include <iostream.h> main() {int i, s=0;
for (i=100;i>0;i--) { s=s+i; }
cou<<"s="<<s<<endl;

2019年7月23日7时19分

15

3.循环变量的值起三个作用,一是记数,二是可 以参加循环体计算,三是用做数组的下标。
例: 计算10个数的和 #include <iostream.h> main() {int i, s=0; static int a[10]={1,3,4,5,4,3,3,3,4,2}; for (i=1;i<10;i++) { s=s+a[i]; } cout<<"s="<<s<<endl; }

2019年7月23日7时19分

16

4. 三个表达式可以有,也可以全无,但“;”不 能少。如果表达式2无,程序将进入无限循环。
5. 可以用break命令中断循环. 例: 计算s=1+3+5+……+n直到最后一项为99止.
#include <iostream.h>

main()

{int i, s=0;

for (i=1; ;i=i+2)

{ if (i==101) break;

s=s+i;}

cout<<s<<endl;}

2019年7月23日7时19分

17

6. 可以用continue命令中断当前这一次循环,继续下一次 循环.

例: 计算s=1+3+5+……+99

#include <iostream.h>

main()

{int i, s=0;

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

{ if (i%2==0) continue;

s=s+i;

}

cout<<"s="<<s<<endl;

}

2019年7月23日7时19分

18

4.2 多层循环 例:开设3门课程,计算每个学生平均成绩
#include <iostream.h> main() {int i,j,s=0;
int a[5][3]={87,78,79,87,98,67,56,79,98}; for (i=0;i<3;i++)
{ s=0; for(j=0;j<3;j++) { s=s+a[i][j]; cout<<a[i][j]<<" ";} cout<<s/3<<endl;
} }

2019年7月23日7时19分

19

4.3 循环中断 break
4.4 exit()函数
例: 从键盘上输入字母,然后输出比它的ASCII码大1 的字 母 #include <iostream.h> #include "stdio.h"
main() { char ch='a'; cout<<"input letter s=";

2019年7月23日7时19分

20

while (ch!='#') { ch=getchar(); if (ch=='z'||ch=='Z' ) putchar(ch-25); else putchar(ch+1); }
}

2019年7月23日7时19分

21

题1:输出九九乘法表 123456789
11 2 3 4 5 6 7 8 9 2 2 4 6 8 10 12 14 16 18

9 9 18 27 36 45 54 63 72 81

2019年7月23日7时19分

22

#include <iostream.h>

#include "iomanip.h"

main()

{int k,j;

cout<<"

";

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

cout<<k<<setw(5); //width(5)

cout<<'\n';

2019年7月23日7时19分

23

for(k=1;k<10;k++) {cout<<setw(5)<<k; for(j=1;j<10;j++) {cout<<setw(5)<<k*j;} cout<<endl;} }
// {cout.width(5);cout<<k*j;}

2019年7月23日7时19分

24

#include <iostream.h> #include "iomanip.h" main() {int k,j; cout<<" "; for(k=1;k<10;k++) {cout.width(5); cout<<k;}
cout<<'\n'; for(k=1;k<10;k++)
{cout<<setw(5)<<k; for(j=1;j<10;j++)
{cout.width(5);cout<<k*j;} cout<<endl;} }

2019年7月23日7时19分

25

题2:判断m是否是素数。

#include <iostream.h>

main()

{int k,m,h=1;

cin>>m;

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

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

if( h==1) cout<<m<<“ is a prime number”<<endl;

}

2019年7月23日7时19分

26

题3;求出100以内的所有素数 #include <iostream.h> main() {int k,m; for(m=3;m<100;m=m+1) {for(k=2;k<m;k++) if (m%k==0) break; if(k==m) cout<<m<<"is a prime number"<<endl; } }

2019年7月23日7时19分

27

题4:求m,n 的最大公约数
#include <iostream.h> main( )
{int m,n,m1,n1,r; cin>>m>>n; m1=m;n1=n; r=m%n; while (r!=0)
{ m=n;n=r;r=m%n;} cout<<"m="<<m1<<endl; cout<<"n1="<<n1<<endl; cout<<"r="<<n<<endl; }

2019年7月23日7时19分

28

题5:求Fibonaccii(斐波那契)数列中前20项中每一 项(递推法)
0,1,1,2,4,7,13,…… #include <iostream.h> main()
{long k,a=0,b=1,c=1,d; for(k=1;k<18;k++)
{d=a+b+c; cout<<d<<'\t'; a=b;b=c;c=d; }}

2019年7月23日7时19分

29

题6:2000年人口13亿,年增长0.5%和 2.1%,多少年后达到或超过20亿(87,21)?

#include <iostream.h>

main()

{int n=0;

float f=13,e=0.005;

while (f<20)

{f=f*(1+e); n=n+1;}

cout<<n<<endl;

}

2019年7月23日7时19分

30

题7:产生10个学生的成绩,呈正态分布
#include <iostream.h> #include <time.h> #include "math.h" #include "stdlib.h" #include "iomanip.h"
main( ) {int k;float x; srand(time(NULL)); for(k=1;k<11;k++) {x=rand()/32767.0*90; x=sin(x*3.14/180)*71+30; cout<<(int)x<<setw(5); if (k%10==0) cout<<endl;} }

2019年7月23日7时19分

31

题13:梯形法求积分:∫sin(x)dx 题14: 用牛顿迭代法求方程x5+2x3-x2+x+1=0在0附近的根。 题15:找出1000以内的水仙花数。三位数的立方和等于自身
(13+53+33=153) 题16:根据以下算术式,求A、B、C、D
ABCD -- C D C ----------------
ABC 题17:输出图形
A ABC ABCDE ABCDEFG

2019年7月23日7时19分

32


相关文档

第4章循环结构程序设计2ppt课件
C语言课件第5章循环结构程序设计2课件
VB课件第4章循环结构资料
VB课件第4章循环结构-文档资料
VB课件第4章循环结构
C语言课件第4章顺序结构程序设计
C语言程序设计课件第4章循环结构
2019年第4章循环结构程序设计2ppt课件.ppt
c语言课件第5章循环结构程序设计
学霸百科
电脑版 | | 学霸百科