c语言 谭浩强第四版 第5章 循环结构程序设计 ppt


5.4用for 语句实现循环
for语句不仅可以用于循环次数已经确 定的情况,还可以用于循环次数不确定 而只给出循环结束条件的情况
for语句完全可以代替while语句
5.4用for 语句实现循环
i=1 i<=100 i++ for (i=1;i<=100;i++)
i=1 i ≤100 N
{
printf("%d ", i ); }
5.4用for 语句实现循环
for (sum=0 ; i<=100; i++) sum=sum+i;
与循环变量无关 合法
5.4用for 语句实现循环
for(sum=0,i=1 ; i<=100; i++) sum=sum+i;
for(i=0,j=100 ; i<=j; i++,j-- ) k=i+j;
#include <stdio.h> #define SUM 100000 int main() { float amount,aver,total; int i; for (i=1,total=0;i<=1000;i++) { printf("please enter amount:"); scanf("%f",&amount); total= total+amount; if (total>=SUM) break; } 实际捐款人数 aver=total / i ; printf(“num=%d\naver=%10.2f\n“ ,i,aver); return 0; }
5.4用for 语句实现循环
for语句的一般形式为 for(表达式1;表达式2;表达式3) 语句
作为循环的调整器,例如 使循环变量增值,它是在 执行完循环体后才进行的
5.4用for 语句实现循环
for语句的执行过程:
(1) 先求解表达式1 (2) 求解表达式2,若其值为真,执行循环体, 然后执行下面第(3)步。若为假,则结束循环, 转到第(5)步 (3) 求解表达式3 (4) 转回上面步骤(2)继续执行 (5) 循环结束,执行for语句下面的一个语句
5.7 改变循环执行的状态
5.7.1 用break语句提前终止循环
5.7.2 用continue语句提前结束本次循环 5.7.3 break语句和continue语句的区别
5.7.1 用break语句提前终止循环
break语句可以用来从循环体内跳出 循环体,即提前结束循环,接着执行 循环下面的语句
#include <stdio.h> #define SUM 100000 int main() { float amount,aver,total; int i; for (i=1,total=0;i<=1000;i++) { printf("please enter amount:"); scanf("%f",&amount); 应该执行1000次 total= total+amount; if (total>=SUM) break; } aver=total / i ; printf(“num=%d\naver=%10.2f\n“ ,i,aver); return 0; }
Y 输出i i=i+1
5.4用for 语句实现循环
for语句的一般形式为 for(表达式1;表达式2;表达式3) 语句
设置初始条件,只执行一 次。可以为零个、一个或 多个变量设置初值执行
5.4用for 语句实现循环
for语句的一般形式为 for(表达式1;表达式2;表达式3) 语句
循环条件表达式,用来判定是否继续 循环。在每次执行循环体前先执行此 表达式,决定是否继续执行循环
第5章 循环结构程序设计
5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 为什么需要循环控制 用while语句实现循环 用do---while语句实现循环 用for 语句实现循环 循环的嵌套 几种循环的比较 改变循环执行的状态 循环程序举例
5.1为什么需要循环控制
在日常生活中或是在程序所处理的问题 中常常遇到需要重复处理的问题
逗号表达式 合法
5.4用for 语句实现循环
for(i=0; (c=getchar())!=’\n′; i+=c)
;
for( ; (c=getchar())!=’\n’; printf(″%c″,c); )
合法
5.5循环的嵌套
一个循环体内又包含另一个完整的循环 结构,称为循环的嵌套 内嵌的循环中还可以嵌套循环,这就是 多层循环 3种循环(while循环、do…while循环和 for循环)可以互相嵌套
例5.3 while和do---while循环的比较。 当while后面的表达式的第一次的值为“真” int i,sum=0; int i,sum=0; printf(“i=?”); printf(“i=?”); 时,两种循环得到的结果相同;否则不相同
scanf(“%d”,&i); while(i<=10) { sum=sum+i; i++; } printf(“sum=%d\n",sum); scanf(“%d”,&i); do { sum=sum+i; i++; }while(i<=10); printf(“sum=%d\n",sum);
aver=(s1+s2+s3)/3; printf(“aver=%7.2f”,aver);
输入学生2的三门课成绩,并计算平均值后输出
scanf(“%f,%f,%f”,&s1,&s2,&s3);
aver=(s1+s2+s3)/3;
printf(“aver=%7.2f”,aver); 要对50个学生进行相同操作
n 1
100
5.3用do---while语句实现循环
解题思路:
sum=0 i=1 sum=sum+i i=i+1
Y
i=1; sum=0; do { sum=sum+i; i++; }while(i<=100);
i ≤100
N
#include <stdio.h> int main() { int i=1,sum=0; do { sum=sum+i; i++; }while(i<=100); printf("sum=%d\n",sum); return 0; }
do---while语句的特点:先无条件地执 行循环体,然后判断循环条件是否成立 do---while语句的一般形式为: do 语句 循环体语句 while (表达式);
Y 表达式 N
5.3用do---while语句实现循环
例5.2 用do…while语句求:
1+2+3+…+100,即 n
#include <stdio.h> #define SUM 100000 int main() { float amount,aver,total; int i; for (i=1,total=0;i<=1000;i++) { printf("please enter amount:"); scanf("%f",&amount); total= total+amount; if (total>=SUM) break; } 达到10万,提前结束循环 aver=total / i ; printf(“num=%d\naver=%10.2f\n“ ,i,aver); return 0; }
5.4用for 语句实现循环
for(i=1;i<=100;i++) sum=sum+i; 等价于 用for语句更简单、方便 i=1; while(i<=100) { sum=sum+i; i++; }
5.4用for 语句实现循环
for(表达式1;表达式2;表达式3) 语句
一个或两个或三个 表达式均可以省略
求一个学生平均成绩 输出一个学生平均成绩 i增1
while语句的一般形式如下:
while (表达式) 语句
循环体
while语句的一般形式如下:
while (表达式) 语句
循环条件表达式
“真”时执行循环体语句 “假”时不执行
while循环的特点是: 先判断条件表达式,后执行循环体语句
例5.1求1+2+3+…+100,序都会包含循环结构
循环结构和顺序结构、选择结构是结构 化程序设计的三种基本结构,它们是各 种复杂程序的基本构造单元
5.2用while语句实现循环
全班有50个学生,统计各学生三门课 的平均成绩。
i=1
用while循环结构实现
N
i≤0 Y 输入一个学生成绩
while(i<=50) { scanf…… ; aver=…… ; printf…… ; i++; }
n 1
100
解题思路:
这是累加问题,需要先后将100个数相加
要重复100次加法运算,可用循环实现 后一个数是前一个数加1而得 加完上一个数i后,使i加1可得到下一个数
#include <stdio.h> int main() { int i=1,sum=0; 不能少 while (i<=100) { sum=sum+i; 复合语句 i++; } printf("sum=%d\n",sum); return 0; }
合集下载

《谭浩强C程序设计》课件

《谭浩强C程序设计》课件
3 动态绑定
掌握动态绑定的原理和用法,以及如何使用基类指针和引用访问派生类对象。
C++ STL库
1
容器
学习STL库提供的各种容器类,如vector、set和map。
2
算法
了解STL库提供的常用算法,如排序、查找和遍历。
3
迭代器
掌握STL库的迭代器概念和用法,以及如何使用迭代器遍历容器。
2 动态内存分配
了解动态内存分配的概念和使用方法,以及如何避免内存泄漏。
3 指针和数组
掌握指针和数组之间的关系,以及如何使用指针处理数组。
结构体和联合体
1
结构体
学习结构体的定义和使用,以及如何操
联合体
2
作结构体成员。
了解联合体的特点和用途,以及如何使
用联合体处理不同类型的数据。
3
嵌套结构体
掌握嵌套结构体的概念和使用方法,以 及如何访问嵌套结构体的成员。
文件操作
1 文件的打开与关闭
学习如何打开和关闭文件,并了解文件指针和文件的打开模式。
2 文件的读写
掌握文件的读取和写入操作,以及如何判断文件的结束。
3 文件的定位和删除
了解如何定位文件的读写位置,以及如何删除文件。
预处理器和宏定义
预处理器
学习预处理器的基本概念和使用方法,以及如何使 用宏定义。
宏定义
《谭浩强C程序设计》 PPT课件
学习C程序设计的基础知识,掌握C语言的基本语法和常用的控制语句,以及 函数、指针等高级概念和技巧。
程序设计基础
1 编程范式
掌握程序设计的基本思想 和方法。
2 算法与流程图
学习如何设计算法,并用 流程图表示程序的执行顺 序。

C语言程序设计(第四版) 谭浩强 课件 PPT 完整版

C语言程序设计(第四版) 谭浩强 课件 PPT 完整版

语句
printf语句中的“\n‖是换行

<
>
C语言程序设计
第/* example1.1 calculate the sum of a and b*/ #include <stdio.h> 预处理命令 /* This is the main program */ void main() 注释 { int a,b,sum; /*定义变量*/ 函数 a=10; b=24; 语句 sum=add(a,b); printf(”sum= %d\n",sum); } printf语句中的“ %d ‖是表
C语言程序设计
第一章 C语言概述
C语言结构特点
函数与主函数
程序由一个或多个函数组成 必须有且只能有一个主函数main(),可以放在程序中任一 位臵 程序执行从main开始,在main中结束,其它函数通过嵌 套调用得以执行。
程序语句
C程序由语句组成 用‚;‛作为语句终止符
注释
C语言程序设计
第一章 C语言概述
Turbo C集成开发环境
配臵要求
UNIX,PC-DOS,MS-DOS,UCDOS操作系统 硬盘容量约2M,448K RAM运行空间
安装Turbo C
创建子目录 Install 若不是可安装盘,将文件拷贝到对应的目录下
TC
*.* *.*
INCLUDE SYS
Alt +x Alt+F ,Q
帮助Help
F1 Ctrl+F1
<
>
C语言程序设计
第一章 C语言概述
常用热键 基本操作:
F10-----调用主菜单 F2------存盘 F3------打开 F1------帮助信息 Alt+F9------Compile Ctrl+F9------Run Alt+F5------User Screen Alt+X ------退出Tc

C语言程序设计第四版PPT 谭浩强

C语言程序设计第四版PPT 谭浩强
case '9' : y="A";
case '8' : y="B"; case '7' : y="C"; case '6' : y="D"; default : y="E"; } printf("Level:%c\n",y);
注意: 同前;case后的数据类型; 每个case后的break语句; 使用相同语句的分支合并。
printf("It's a positive number\n");
else
printf("less than zero\n");
关系运算符
< <= == !=
> >= 优先级高 优先级低
关系运算符
算术运算→关系运算→赋值运算






例:P.92 L.8
关系表达式
➢用关系运算符连接算术表达式(或 字符/关系/逻辑/赋值表达式)形成
选择结构(分支结构)流程
Y
语句组1
条件
N
语句组2
循环结构流程
条件
N
Y
语句组
第4章 选择结构
选择结构(分支结构)流程YΒιβλιοθήκη 语句组1条件N
语句组2
选择结构实例
P.66 例3.5 一元二次方程 程序存在的问题:用户输入的数据必 须保证b2-4ac≥0,否则调用sqrt函数 会出错。 改进:P.86 例4.1 是否还有不完善之处?
文件名
尽信书,则不如无书
算法在程序中的重要性

C语言程序设计第四版谭浩强-PPT课件

C语言程序设计第四版谭浩强-PPT课件
例: printf("%d",sizeof(int));
浮点型数据(Floating point,即实型) 浮点型常量
两种表示形式 十进制小数:例如 3.14159 指数形式:例如 1.72e3
main( ) { float x; x=23456.789; printf("x=%e",x); }
25string26string字符串结束符占一个字节由系统自动加上源代码中china27字符常量字符串常量定界符非负整数存储要求单个字符的ascii码有效字符和结束标志0的ascii码2829整型intshortlong浮点型floatdoublelongdouble字符型char数据可混合运算运算前先自动转换成同一类型必定转换floatdoublecharint运算对象类型不同时由较低精度向较高精度转换成相同类型精度
常变量
C99新增 存储方式和用法都是变量,但只能在 定义时赋值一次
C语言的数据类型
1.基本类型 整型、浮点型、字符型 2.派生类型 数组,结构体,共用体 3.指针类型 4.空类型 5.枚举型
整型数据(Integer) 整型常量
三种数制的表示形式
十进制(Decimal):例如 八进制(Octal):例如
上周实验题讲解
P.6例1.1 P15习题5 教材例1.3
——增加输入提示,便于用户操作
——也可以不用函数
——多次运行,测试各种顺序的组合
P15习题6
——三个数比较:用max函数比较两次
第3章
顺序程序设计
3.1 最简单的程序结构——顺序结构
数据输入 运算处理
结果输出
顺序结构流程
步骤1 步骤2 步骤3
10 + 'a' – 10.1 * 'b'

C程序设计(第四版)(谭浩强编)教程-第5章_循环结构程序设计

C程序设计(第四版)(谭浩强编)教程-第5章_循环结构程序设计

乐山师范学院数信学院
for语句的说明
三个表达式的说明 expr1:初始化

expr2:循环条件

expr3:一般是循环变量的改变
分隔表达式的分号不能省略 expr1省略,不进行初始化 expr2省略,认为循环条件永为“真” expr3省略,不在这里改变循环变量
三个表达式都可以省略

#include<stdio.h>
int main() {
int n;
for(n=100;n<=200;n++) { if(n%3==0) continue; //等价于if(n%3!=0) printf(“%4d”,n ); // printf(“%4d”,n ); } printf("\n");

结束本次循环
while(i<j){ ... if(i>100) break; ... }
while(i<j){
...
if(i>100)
continue; ... }
C程序设计
26
乐山师范学院数信学院
break和continue语句
C程序设计
27
乐山师范学院数信学院
continue语句举例
【例】
参见教材,for语句的说明
C程序设计 13 乐山师范学院数信学院
for语句使用举例
例如:
for(i=1,sum=0; i<=100; i++) sum=sum+i; 先给i赋初值1,判断i是否小于等于100, 若是则执 行语句,之后值增加1。再重新判断, 直到条件为假 ,即i>100时,结束循环。 相当于: i=1;sum=0; while(i<=100) { sum=sum+i;

第5章 循环结构程序设计PPT课件

第5章 循环结构程序设计PPT课件

}
C语言程序设计
第5章 循环结构程序设计
§ 5.2 用while语句实现循环i=1w; hile (i<=100)
2、while语句的注意事项
{ sum=sum+i;
注意:
i++; }
(1) 循环体如果包含一个以上的语句,应该用花括弧括
起来,以复合语句形式出现
(2) 在循环体中应有使循环趋向于结束的语句。如果无
C语言程序设计
第5章 循环结构程序设计
§ 5.2 用while语句实现循环
1、while语句的一般形式
while语句用来实现“当型”循环结构 一般形式: while (表达式)
循环体语句
当表达式为非0值时,执行while 语句中的循环体语句 其特点是:
先判断表达式,后执行语句
C语言程序设计
第5章 循环结构程序设计
} 运行结果:
}
1↙ sum=55 再运行一次:
}说明:当while后面的表达式的第一次的
值为“真”时,两种循环得到的结果相
11↙ sum=0
同。否则,二者结果不相同
C语言程序设计
第5章 循环结构程序设计
§ 5.4 用for语句实现循环
1、for语句的一般形式
C语言中的for语句使用最为灵活,不仅可以用于 循环次数已经确定的情况,而且可以用于循环次数 不确定而只给出循环结束条件的情况,它完全可以 代替while语句
语句,转到第(5)步
(3) 求解表达式3
(4) 转第(2)步骤继续执行
(5) 循环结束,执行for语句下面的一个语句
C语言程序设计
第5章 循环结
执行表达式1
循环初始条件

C语言程序设计第5章-循环结构程序设计ppt课件

分析:循环进行的条件是:i≤k和flag=0。因为在i>k时, 显然不必再去检查n是否能被整除,此外如果flag=1, 就表示n已被某一个数整除过,肯定是非素数无疑, 也不必再检查了。只有i≤k和flag=0两者同时满足才 需要继续检查。循环体只有一个判断操作:判断n 能否被i整除,如不能,则执行i=i+1,即i的值加1, 以便为下一次判断作准备。如果在本次循环中n能 被i整除,则令flag=1,表示n已被确定为非素数了, 这样就不再进行下一次的循环了。如果n不能被任 何一个i整除,则flag始终保持为0。因此,在结束 循环后根据flag的值为0或1,分别输出n是素数或非 素数的信息。
while(i<=k && !flag)
if(n % i==0) flag=1;
else i=i+1;
if(!flag)
printf("%d is a prime
number.\n",n);
else
printf("%d is not a prime
number.\n",n);
}
.
返回本章首页
第5章 循环结构程序设计
【例5_1】用while语句求p=n!
#include<stdio.h>
int main()
{ int i=1,p=1; //循环初始化部分 while(i<=5) //循环控制部分
{ p=p*i; //循环体语句 i++; //循环修改部分
}
printf("5!=%d\n",p);
return 0;
10-3,则再执行循环体,把 term 值赋给term1.然后再累加 到s中去。可以看出:程序中 term1代表当前要累加的项, term代表下一项,如果这两项 之差未超过10-3,就将下一项 加到s 中。

C语言程序设计第四版PPT 谭浩强

i 1 100
问题的扩展: (1) 求 1 ~ 100 间奇数的和
int i,sum=0; for (i=1;i<=100;i=i+2) sum=sum+i; printf("1+3+...+99=%d\n",sum); int i,sum=0; for (i=1;i<=100;i++) if(i%2==1)sum=sum+i; printf("1+3+...+99=%d\n",sum);
do-while语句
do 语句 while (表达式)
假(0)
语句
表达式
真(非0)
语句 表达式
N-S图
流程图
do-while语句
例1:求 n 1 2 3 ... 100
n 1
100
int i=1,sum=0;
do
{ sum=sum+i;
i++;
}while(i<=100);
例4:求
10
n ! 1! 2! 3! ... 10 !
n 1
int i,n, fac,sum=0; for (n=1;n<=10;n++) { fac=1; for (i=1;i<=n;i++) fac=fac*i; sum=sum+fac; } printf ("1!+2!+...+10!=%ld\n",sum);
例6:鸡兔问题
计算机的解决方法——将各种可能情 况逐个试算,找到符合要求的结果
鸡0只,兔H只,则脚有...只≠F 鸡1只,兔H-1只,则脚有...只≠F 鸡2只,兔H-2只,则脚有...只≠ F ...... 鸡C只,兔H-C只,则脚有...只=F,显示结果 ...... 鸡H只,兔0只,则脚有...只≠ F

c语言第5章循环结构程序设计课件

6
第五章 循环结构程序设计
典型例题(例5-8) :求两个整数的最大公约数、最小公倍数
12 8 4 mn r
84
0
mn r
最大公约数 4 最小公倍数 12*8/4=24
求最大公约数的N-S流程图
辗转相除法
7
第五章 循环结构程序设计
void main( )
{ int n, m, nm, r, t; printf( " Enter m, n= ? " ) ; scanf( " % d% d" , & m, & n) ; nm= n* m; if ( m< n)
例如: for(i=1;i<=n;) { t=t*i; i++; } (4)可以省略表达式1和表达式3,只有表达式2 , 即只给循环条件。
i=1; for(;i<=n;)
{t=t*i; i++;}
14
第五章 循环结构程序设计
(5) 3个表达式都可省略。 例如: for(;;) 语句 相当于 while(1)语句。
3
第五章 循环结构程序设计
例: 编程序求: s=1+2+3+……+100
main()
{ int s=0,i=1;
while (i<=100) { s=s+i;
思考:如何求n!
i++; }
printf("S=%d",s); }
4
第五章 循环结构程序设计 二、 do...while语句
Do-while语句的一般形式为:
(1) while( ) {… while( ) {…}

谭浩强(第四版)C++程序设计课件


3.1 面向过程的程序设计和算法
在面向过程的程序设计中,程序设计者必须指定计 算机执行的具体步骤,程序设计者不仅要考虑程序 要“做什么”,还要解决“怎么做”的问题,根据 程序要“做什么”的要求,写出一个个语句,安排 好它们的执行顺序。怎样设计这些步骤,怎样保证 它的正确性和具有较高的效率,这就是算法需要解 决的问题。
3.2 C++程序和语句
由第1章已知,一个程序包含一个或多个程序单位 (每个程序单位构成一个程序文件)。每一个程序单 位由以下几个部分组成: (1) 预处理命令。如#include命令和#define命令。 (2) 声明部分。例如对数据类型和函数的声明,以 及对变量的定义。 (3) 函数。包括函数首部和函数体,在函数体中可 以包含若干声明语句和执行语句。 如下面是一个完整的C++程序:
图3.2
图3.3
有关流对象cin、cout和流运算符的定义等信息是存 放在C++的输入输出流库中的,因此如果在程序中 使用cin、cout和流运算符,就必须使用预处理命令 把头文件stream包含到本文件中:
#include <iostream>
尽管cin和cout不是C++本身提供的语句,但是在不 致混淆的情况下,为了叙述方便,常常把由cin和 流提取运算符“>>”实现输入的语句称为输入语句 或cin语句,把由cout和流插入运算符“<<”实现 输出的语句称为输出语句或cout语句。根据C++的 语法,凡是能实现某种操作而且最后以分号结束的 都是语句。
//注意行末尾无分号
//语句最后有分号
//语句末尾有分号
也可写成多个cout语句,即
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档