当前位置:
文档之家› 最新C语言程序设计第五讲汇总
最新C语言程序设计第五讲汇总
{ for (j=1; j<=i; j++) printf("*");
printf("\n"); } } 2020/8/14
* ** *** **** ***** ******
第五讲 循环结构程序设计(二)
例 计算并输出10以内(包括10)所有自然数的阶乘值。 即计算1!,2!,3!,4!,5!,6!,7!,8!,9!,10!。
2、continue 语句 continue语句的功能是结束本次循环的执行,但不退出
循环结构。 下面举两个例子来说明continue语句的使用。
2020/8/14
第七讲 循环结构程序设计(一)
要 求 : s u m = 1 2 + 2 2 + 3 2 + … 直 到 s u m 大 于 1 0 0 , 输 出 s u m
2020/8/14
第九讲 循环结构程序设计(三)
百钱买百鸡问题程序
#include "stdio.h" main() { int x,y,z;
printf("\n cock hen chick\n"); for (x = 0;x<=19; x++) for (y = 0; y<=32; y++)
{z = 100 - x - y; if ((5 * x + 3 * y + z / 3 ==100)&& (z % 3==0))
此题用代数方法是无法求解的。因为有3个未知数,只有2个方程
式。设公鸡x只,母鸡y只,小鸡z只,可以列出方程:
x+y+z=100
①
5x+3y+z/3=100 ②
由于无法直接用代数方法解,可以用“穷举法”来解此问题。 分析一下x,y,z的可能取值范围:公鸡最多能买20只,故0≤x< 20;母鸡最多能买33只,所以0≤y<33;在x,y确定后,自然就得出 z=100-x-y。
采用的方法是,对于10以内的每一个自然数分别求它们 的阶乘值。其流程图如图4.7所示。显然,这是一个二重循环 结构。
FOR N=1 TO 10 S=1.0 FOR K=1 TO N S=S*K 输出 S
2020/8/14
第五讲 循环结构程序设计(二)
相应的C程序如下: #include "stdio.h" main() { int n,k;
printf("%5d,%5d,%5d\n",x,y,z) ; } }
2020/8/14
第九讲 循环结构程序设计(三)
例:有一个数列,前两个数是1,1,第三个数是前两 个数之和,以后每个数都是其前两个数之和,此数列的前几 个数为1,1,2,3,5,8…要求输出前20个数。数列称为 Fibonacii,斐波那契数列
C语言程序设计第五讲
第五讲 循环结构程序设计(二)
一、几能说哪种更加优越。具体使 用哪一种结构依赖于程序的可读性和程序设计者个人程序设计的风格 (偏好)。我们应当尽量选择恰当的循环结构,使程序更加容易理解。 (尽管for循环功能强大,但是并不是在任何场合都可以不分条件使)。 例:将50-100之间的能被3整除的数输出(用三种循环结构实现)
/* 用while语句实现 */ main() { int i=50;
while(i<=100) { if(i%3==0) printf(“%4d”,n); i++; } }
2020/8/14
第五讲 循环结构程序设计(二)
二、 循环的嵌套 所谓循环的嵌套是指一个循环体内又包含了另一个完整
的循环结构。C语言允许循环结构嵌套多层。循环的嵌套结构 又称为多重循环。
例:输入一个整数n,判断它是否为素数。
#include <stdio.h> main() { int n, k, i,flag=0;
printf("\ninput n:"); scanf("%d",&n); k = n/2; for(i=2; i<=k; i++)
if (n % i == 0) { printf(“\n%d is not a prime number”,n); flag=1; break;}
do
循环体1
for(表达式1;表达式2;表达式3) 循环体2 while 条件
2020/8/14
第五讲 循环结构程序设计(二)
二、循环的嵌套
2. 循环嵌套的执行过程 例. 写出下列程序的执行结果
#include <stdio.h> main() { int i, j; for (i=1; i<=6; i++)
#include "stdio.h" main() { int i,sum=0;
for (i = 1;i<=10; i++) { sum=sum+i*i; if (sum >= 100) break; }
printf("i=%d,sum=%d",i,sum); }
2020/8/14
第五讲 循环结构程序设计(二)
递推过程: 1
1
(第1次) (第2次)
f1 + f2
(第3次)
2
3
f1
f2
f1 + f2
5
8
13
21…
f1
f2
f1 + f2
f1
f2
2020/8/14
第九讲 循环结构程序设计(三)
斐波那契数列问题程序
#include "stdio.h" main() { int f1=1,f2=1,i;
printf("%8d%8d",f1,f2); for (i = 1;i<10; i++)
{ f1 = f1 + f2; f2 = f2 + f1; printf("%8d%8d",f1,f2); } }
2020/8/14
第五讲 循环结构程序设计(二)
三、循环控制语句 1、break 语句 C语言中的break语句有以下两个功能: (1)跳出 switch 结构;
(2)退出当前循环结构,包括 while 结构、 do…while 结构和for循环结构。
double s; for (n=1; n<=10; n=n+1)
{ s=1.0; for (k=1; k<=n; k=k+1) s=s*k; printf("%2d!=%16.7f\n ",n,s);
} }
2020/8/14
第九讲 循环结构程序设计(三)
例 百钱买百鸡:公元5世纪末,我国古代数学家张建丘在《算经》 中提出了“问题”;“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值 钱一。百钱买百鸡,问鸡翁、母、雏各几何?”