循环结构程序设计:三种循环语句

合集下载

C语言 第五章-循环结构程序设计

C语言 第五章-循环结构程序设计

执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/

循环结构

循环结构
{ if (n%7!=0) continue;
printf("%d ",n);
}
}
编程小结



如何按要求输出几项后换行; 在程序设计中,常引入标志变量(或称开 关变量)来表征某个量“是”或“不是”; 课后习题6.1如何求最大公约数和最小公 倍数的算法:辗转相除法; 课后习题6.2,针对“输入一行字 符,……”的题目处理判断条件 while((c=getchar())!=„\n‟)
重要注意:

请认真阅读课本
P359—P363 P371—373
附录中关于上机事项的介绍;
作业
NO1: 编写程序,求1-3+5-7+…-99+101的值; 按正序和反序输出字母表;(只是一道题) 1 1 1 1 1 编写程序,求e≈ 1 ! 2 ! 3 ! n! ①用while循环,要求直到最后一项的值小 于10-4。 ②用for循环,计算前50项; ——此题目的:看哪种方法精度高。
(注意:赋初值时刻及{}包括的范围) 另:为考虑阅读的方便,请务必 注意书写时的缩进及层次
例:打印各种形状图形

***** ***** ***** * ***** *** *** ***** * 考虑:采用双重循环,一行一行输出。 每一行输出步骤:一般3步。 1)光标定位 2)输出图形 3)每输完一行光标换行(\n)

说明(此部分可自学,P111)

for语句使用非常灵活,可以省略“表达 式1”、“表达式2”、“表达式3”中的 几个或全部表达式,但2个“;”不
可省;


①省略“表达式1”:表达式1”的作用 是设定循环初始条件,“表达式1”省略 后,应在for语句前面设置循环初始条件; ②省略“表达式2” (即循环条件), 不判别循环条件,认为循环循环条件始

循环结构程序设计(C语言实验报告)

循环结构程序设计(C语言实验报告)

循环结构程序设计(C语言实验报告)实验目的:1. 掌握循环结构程序设计流程2. 熟悉while、do-while和for循环语句的使用3. 掌握循环语句的嵌套应用实验原理:循环结构是一种非常重要的程序设计结构,其目的是为了让程序可以重复执行一段代码块,从而达到省去大量代码重复编写的目的,也可以是让程序能够按照用户的需求反复执行一段代码块。

在C语言中,常用的循环结构有while、do-while和for三种,这三种循环语句的基本语法结构是:while(循环条件){循环体语句;}其中,while循环和do-while循环的区别在于:while循环条件成立时,不一定会执行一次循环体,但do-while循环条件成立时,会先执行一次循环体,然后判断循环条件是否成立;至于for循环,则是将循环条件、循环初值和循环增量三个要素集成在一起,使用比较方便。

另外,循环结构也可以进行嵌套应用,即在循环体内部再嵌套一个循环,这样可以实现多个变量的循环控制。

应用实例包括如下:1. 打印九九乘法表2. 对一个数组进行排序3. 多重循环实现字谜游戏实验内容:1. while循环:目的是求出1~100的整数和,并在程序运行过程中输出1~100的所有整数。

目的是输入若干个数字,计算它们的平均值。

3. for循环:目的是输入一个数n,求1~n中可以被3或5整除的所有整数和。

4. 循环嵌套:目的是打印九九乘法表。

实验总结:本次实验通过三种常用的循环结构,并结合实例进行学习掌握,同时还熟悉了循环嵌套的应用。

相信这对于日后的程序设计和代码优化应用会非常有帮助。

[工学]第05章 循环结构程序设计 (2)

[工学]第05章 循环结构程序设计 (2)
T
22
i=i+c
2019/2/17
例:#include<stdio.h> 例:#include<stdio.h> main( ) main( ) { int i=0; { int i=0; for(;i<10;i++) for(i=0;i<10;i++) putchar(‘a’+i); putchar(‘a’+i); } } 运行结果:abcdefghij
2019/2/17
21
(7)表达式2一般是关系表达式(如 for语句说明4 i<=100)或逻辑 表达式(如a<b&&x<y),但也可以是数值表达式 或字符表达式,只要其值为非零,就执行循环体。分 析下面两个例子: ①for ( i=0;(c=getchar( ))!=‘\n’;i+ =c); i=0 此 for语句的执行过程见图 ,它的作 用是不断输入字符,将它们的ASCII 取一个字 码相加,直到输入一个“换行”符为 符=>c 止。 F ② for( ;(c=getchar( ))!=‘ \ n’;) C≠换行符 printf(“%c”,c);
15
思考:该程序是什么功能?
2019/2/17
5.3 for语句
for循环语句是C语言中功能最强的循环语句,它有
多个变化形式,并且可以很方便的代替其它的循环语
16
句。 for语句的一般形式
for(表达式1;表达式2;表达式3)循环体语句
2019/2/17
17
for执行流程
①先计算初值表达式1,它主要 用于循环开始前设置变量初值; ②接着计算循环控制逻辑表达式 2,它控制循环条件,决定循环 次数; ③如果表达式2为真,则执行循 环体语句,否则结束for循环; ④求解表达式3,它主要是对循 环控制变量进行修改。 ⑤转步骤②执行。

C语言程序设计:第5章 循环结构

C语言程序设计:第5章 循环结构
执行过程: 先执行循环体语句,再检查 循环条件表达式的值是否为真, 如果为真则继续执行循环体语句, 否则结束循环。
12
do...while语句(cont...)
课堂练习: 1.输出1---n之间的数,其中n从键盘输入。
int main(void) {
//1.定义变量i和n //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:输出i的值 return 0; }
} 相当于 while(1) {
}
26
小结
❖for(i=m;i<n;i++)//循环次数:n-m次 ❖for(i=m;i<=n;i++)//循环次数:n-m+1次
27
循环语句的练习
课堂练习: 1.输出n---1之间的数,其中n>1且n从键盘输入。 2.计算1*2*3*...*n的值(n的阶乘n!), 其中n从键盘输入。 3.计算10- 1/2 - 1/3 -....1/n的值 以上练习分别以while、do...while、for语句实现
int main(void) {
//1.定义变量i,n,sum //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:累加i的值 //7.输出计算结果 return 0; }
24
for语句(cont...)
{
sum = sum + i;
if(sum > 100)break;

c语言循环结构三种形式

c语言循环结构三种形式

c语言循环结构三种形式
循环结构是c语言程序设计中重要的一环,它是指将指定的语句重复执行多次的程序结构,循环结构有三种形式:for循环,while循环和do…while循环。

for循环是一种最常用的循环结构,其结构形式为:for(表达式1;表达式2;表达式3)语句;(注意:表达式1、2、3之间用分号隔开,表达式3要用分号结尾),每次循环都会按照表达式1、2、3的顺序执行,其中表达式1一般是初始化变量的值,表达式2则是作为循环条件(集限),表达式3则是更改变量的值。

while循环是另一种比较常用的循环结构,其结构形式为:while(表达式)语句,while循环的作用是当表达式值为真时则重复执行相应的语句,也就是说,只要表达式的值为真,语句就会一次被执行,最后当表达式值为假时,结束循环。

最后一种结构是do…while循环,其结构形式为:do句 while (表达式),不同于while循环,do…while循环会先执行语句,然后才判断表达式,也就是说,无论表达式的值是真还是假,语句都会被至少执行一次。

c语言程序设计中,for循环,while循环和do…while循环共同构成了循环结构的三种形式,它们均是c语言中重要的程序控制结构。

对于for循环,我们可以使用其来完成同一段代码的多次执行;而对于while循环,可以利用其来完成当表达式值为真时的重复执行;最后,对于do…while循环,可以利用其来完成将语句至
少执行一次的操作。

从上面可以看出,不论是c语言编程还是其他编程语言,都不可缺少循环结构,其中for循环,while循环和do…while循环是循环结构当中最为常用的三种形式,他们能够极大地提高程序员的编程效率,帮助我们完成一些复杂的程序编写工作。

《C语言程序设计课件》第四章-循环语句

《C语言程序设计课件》第四章-循环语句
scanf("&d",&n); while(n!=0)
{ sum+=n; scanf("%d",&n); }
printf("The sum is :%d\n",sum);
return 0; }
从任意 n 个实数中选出最大数 和最小数
从任意 n 个实数中选出最大数和最小数
#include <stdio.h> int main( ) {
/*程序4-1*/ #include <stdio.h> int main() {
int i,sum=0; i=1; while(i<=100) {
sum += i; i++; } printf("sum=%d\n",sum); return 0; }
【例4-2】输入一行字符以回车键结束,分别 统计出其中英文字母、空格、数字和其它字符 的个数。
#include <stdio.h> int main( ) {
int i,n;
printf("This program prints a table of squares.\n"); printf("Enter number of entries in table:");
scanf("%d",&n); i=1; while (i<=n)
【例】求整数1~100的累加和,使用for语句实 现。
#include <stdio.h> int main() {
int i,sum=0; for(i=1;i<=100;i++)

循环结构

循环结构

[作业] 1、下列程序段是计算_______ 公式的。 S:=0; t:=1; for i:=1 to 10 do Begin t:=t*I; s:=s+t end; (A) s=1+2+3+4+…+10 (B) s=1*2*3*4*…*10 (C)s=1!+2!+3!+…+10! (D) s=1+2*3+3*4+4*5+…+9*10 注:N!表示1*2*3*…*N ,如3!=1*2*3 本题的循环体不止一句,是一个复合语句,用begin 和 end 圈起来了。 2、var x1,x2,I,x:integer; 该题采用列表法,将变量的值分步写出来。 begin x1:=3; i x x2 x1 x2:=8; 0 8 3 for i:=1 to 5 do 1 begin x:=(x1+x2)*2; 2 x1:=x2; x2:=x; 3 end; 4 writeln(‘x=’,x); 5 end. 运行结果:

[例2]求1+2+3+4+……+N的 和小于等于10000的最小的N。
程序如下: var n,s:integer; begin n:=0; s:=0; while s<10000 do begin n:=n+1; s:=s+n; end; writeln(‘N=’,n) end.
[注意]其中的 n和s必须在循环 语句之前赋初值。
[例1]体育彩票。体育彩票的号码由7位数字组成,现 用电脑帮你编一程序产生随机数。
重复7次,可以使用循环语句来实现。 Var a, I :integer; Begin randomize; {启动程序的随机数开关} For i:=1 to 7 do Begin a:=random(10); {a取一个小于10的整数,但不取负数,可以取0} write (a); end; end.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sum = sum + i ; //循环变量累加到sum中
i = i + 1; //改变循环变量i的值
}while(i<=100);//注意最后的分号
3.for语句
①功能:实现当型循环结构。
②形式
for(表达式1;表达式2;表达式3){
循环体
}
③特点:先判断后执行;使用频率最高。
④举例:修改上例。
/*使用for语句编程计算整数1~100的和。*/
/*方法一:利用for语句实现。*/
int i , n ;
long int p = 1 ;
scanf("%d" , &n) ;
for( i = 1 ; i <= n ; i++ ){
p = p * i ;
}
printf("%d!=%ld\n", n , p );
/*方法二:利用while语句实现。*/
if(number % i == 0){
flag = 0 ; //如果能整除number,则说明number不是素数,存在因子,故素数标识改为0
printf("%d\t" , i ) ; //依次输出因子
}
}
printf("\n");
if(flag)
printf("%d没有因子,是素数。\n",number);
/*方法一*/
#include <stdio.h>
main(){
int number ;
int i ; //===========定义循环变量i=====
int flag = 1 ;//======定义素数标识,初始为1=====
printf("please input a number :\n");
注意:计算累加和时,需要累加和变量清0。
2.循环次数已知的累乘积问题
①编程计算n!=1*2*3*4*……*n的值。(课本第107页例题4.10)
要想解决这个问题,需要用到“递推”的程序设计方法。也就是说,求n!时,先求1!,用1!*2得到2!,用2!*3得到3!,以此类推,直到利用(n-1)!*n得到n!为止,问题即可解决。
三、程序举例
1.循环次数已知的累加和问题
①编程实现计算100以内偶数的和。
/*方法一:使用for语句*/
sum = 0 ;
for( i = 2 ; i <=100 ; i = i + 2 ){
sum = sum + i ;
}
/*方法二:使用while语句*/
sum = 0 ;
i = 2 ;
while( i <=100 ){
else
printf("NO====>%d is not a prime number!\n",number);
}
(3)从键盘任意输入一个正整数,编程实现:若该整数不是素数,则打印它所有因子;否则,打印“没有因子,是素数”的提示信息。(参见课本第131页例4.20)
#include <stdio.h>
}
}
printf("\n");
if(flag) //========素数标识为1,输出是素数,否则输出不是素数==========
printf("YES====>%d is a prime number!\n",number);
else
printf("NO====>%d is not a prime number!\n",number);
一、循环结构(Iteration Structure)的概述
1.目的
为了解决含有重复处理内容的问题,必须采用循环语句(Loop Statement)来编程实现。
2.类型
(1)当型循环结构
(2)直到型循环结构
二、循环语句
1.while语句
①功能:实现当型循环结构。
②形式
while(表达式){
循环体
}
③特点:先判断后执行。
int i , n ;
long int p = 1 ;
scanf("%d" , &n) ;
i = 1;
while( i <= n ){
p = p * i ;
i = i + 1 ;
}
printf("%d!=%ld\n", n , p );
/*方法三:利用do-while语句实现。*/
int i , n ;
①功能:实现直到型循环结构。
②形式
do{
循环体
}while(表达式); //注意最后的分号
③特点:先执行后判断。
④举例:修改上例。
/*利用do-while语句编程实现整数1~100的和。*/
int i ; //循环变量
int sum = 0 ; //累加和清0
i = 1 ; //循环变量i赋初值
do{
}else if(guess < magic){
printf("猜错了!Too small!\n");
}else{
printf("猜对了!\n");
printf("您猜的数字为:%d\n",guess);
}
}while( guess!=magic && count <=3 ); //判断循环终止条件,最多三次机会
(1)猜数字游戏升级版:编程实现猜数字游戏,要求所猜数字为1~10之间的整数,游戏者只有三次机会,猜数字游戏过程中会根据游戏者所猜数字的大小给出一定的信息提示,增强游戏的趣味性。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main(){
}
改进:为了减少循环次数,用数学的方法可以证明:只需用2~sqrt(m)之间的数去除m,即可得到正确的判定结果。
/*方法二:目的使用sqrt()*/
#include <stdio.h>
#include <math.r ;
int i ; //===========定义循环变量i=====
long int p = 1 ;
scanf("%d" , &n) ;
do{
p = p * i ;
i = i + 1 ;
}while( i <= n) ;
printf("%d!=%ld\n", n , p );
第159页课后习题4.14属于循环次数已知,计算累乘积的问题。参考代码
注意:计算累乘积时,需要累乘积变量置1。
if(number % i == 0){
flag = 0 ; //如果能整除number,则说明number不是素数,存在因子,故素数标识改为0
}
}
printf("\n");
if(flag) //========素数标识为1,输出是素数,否则输出不是素数==========
printf("YES====>%d is a prime number!\n",number);
sum = sum + i ;
i = i + 2 ;
}
/*方法三:使用do-while语句*/
sum = 0 ;
i = 2 ;
do{
sum = sum + i ;
i = i + 2 ;
}while(i <= 100) ;
第159页课后习题4.10、4.11、4.12、4.13属于循环次数已知,计算累加和的问题。参考代码
int magic ; //计算机“想”的数
int guess ; //人猜的数
int count ;
srand(time(NULL)); //标准库函数srand()为函数rand()设置随机数种子
magic = rand() % 10 +1; //生成1-10之间的整数
//=====利用do-while循环完成猜数字游戏======
count = 0 ; //计算器清零
do{
printf("请您输入您要猜的整数:(1-10之间)\n");
scanf("%d",&guess); //读入人猜的数
count++ ;
//判断计算机“想”的数与人猜的数的大小
if(guess > magic){
printf("猜错了!Too big!\n");
for(表达式1;表达式2;表达式3){
循环体;
}
表达式1 ;
while(表达式2){
循环体;
表达式3;
}
②for语句适合循环次数事先已知的情况;而while语句和do-while语句适合循环次数事先未知的情况。
③当第一次进入循环时条件就不满足,while语句和do-while语句就不等价。除此情况外,while语句和do-while语句均等价。
}
main(){
int number ;
int i ;
int flag = 1 ;
printf("please input a number :\n");
scanf("%d",&number); //=====从键盘输入一个整数===
相关文档
最新文档