清华大学出版社 TSINGHUA UNIVERSITY PRESS 回顾:算法的概念、特性、表示与设计方法 例1辗转相除法求最大公约数输入mn 输入mn 假设m>=n: ym> NY m>n N m=10:n=6:r=4 m. 互换 mn 互换 6:n=4:r=2 rmon r=mon m=4:n=2:r=0 r不为零时 最大公约数为n=2 n m r =>nl 编程技巧:遇循环时考虑 r>n 输出n 当.执行 rmon 直到r=0 输出n
C语言程序设计(第三版) http://ccf.tsinghua.edu.cn 1 例1 辗转相除法求最大公约数 假设m>=n: m = 10; n=6; r = 4 m = 6; n = 4; r = 2; m = 4; n = 2; r = 0; 最大公约数为n = 2 Y N 输入m,n m>n m,n互换 r=m%n 当r不为零时 n=>m r=>n r=m%n 输出n 回顾:算法的概念、特性、表示与设计方法 Y N m,n互换 输入m,n m>n r = m%n r = 0 Y 输出n N n =>m r =>n 直到r =0 编程技巧:遇循环时考虑 当…执行…
回顾:算法的概念、 n=100 flag=0 例2输出100-200间的素数当n<=200 2 思考:图2-34循环结束条件[是素数当<=m(2001as 量盒库数器如乘器)/与素数 编程技巧:标记变量(变 0i=0 # clude<math片库函数输出n flag=1 void maino n+1 n=100 int n, i, flag; n=100 200 while(n<=200) flag=0 i=2 a i=2 当i≤=sqrt(200)且fag= while(i<=sqrt(200)&&flag==0) n%=0 if(n %i=0)flag=l; i=i+ flag=l n=n2、则 printf("e%dm”,n); if(flas flag=0 输出n n=n+1 语言程序设计(第三版)‖http://ccttsinghua.edu.cn2
C语言程序设计(第三版) http://ccf.tsinghua.edu.cn 2 例2 输出100-200间的素数 思考:图2-34循环结束条件 编程技巧:标记变量(变 量仓库 计数器 累加/乘器) 回顾:算法的概念、特性、表示与设计方法 n=100 当n #include/*库函数*/ void main() { int n,i,flag; n=100; while(n<=200) { flag=0; i=2; while(i<=sqrt(200)&&flag==0) { if(n%i==0)flag=1;i=i+1;} } if(flag==0)printf(“%d\n”,n); n=n+1; }
回顾:算法的概念、表示与设计方法 例3求t1+2+.+100 0→t.1→i 开始 t+1→t #include 0→t,1→1 i+1→i void main O 直到讠100 Int l sum 廿+i→t sum=06=1; 输出t的值 while(i100 while(i<=100) 成立 printf odn",, sum) ∠输出t的值 sum-tl-sum }/结果为5050/ i+1→i 结束 Print(sum)
0t,1i t+it i+1i 直到 i>100 输出 t 的值 回顾:算法的概念、表示与设计方法 开始 0t,1i t+it i+1i i>100 不成立 成立 输出 t 的值 结束 sum=0 i=1 while(i void main() { int i,sum; sum=0; i=1; while(i<=100) { sum=sum+i; i=i+1; } printf(“%d\n”,sum); }/*结果为5050*/ ; , 例3 求t=1+2+…+100
清华大学出版社 TSINGHUA UNIVERSITY PRESS 第三章 就摄算炫
第三章
清华大学出版社 TSINGHUA UNIVERSITY PRESS ●主要内容 描 3.1C的数据类型 述 规 32常量与变量 33-3.5整型、浮点型、字符型数据 操3.6变量赋初值 作 规 37各数值型数据间的混合运算 38-3.10各类运算符和表达式
⚫ 主要内容 3.1 C的数据类型 3.2 常量与变量 3.3-3.5 整型、浮点型、字符型数据 3.6 变量赋初值 3.7 各数值型数据间的混合运算 3.8-3.10 各类运算符和表达式 描 述 规 则 操 作 规 则
清华大学出版社 TSINGHUA UNIVERSITY PRESS §3.1c的数据类型 整型int 基本类型字符型c的u, 浮点型「单精度实型 float 双精度实型 double 枚举类型enum 数组类型 构造类型{结构体类型 struct 共用体类型 unl on 指针类型 空类型void 语言程序设计(第三版)‖http:/iCcf.tsinghua.edu.cn6
C语言程序设计(第三版) http://ccf.tsinghua.edu.cn 6 § 3.1 C的数据类型 指针类型 空类型 void 构造类型 数组类型 结构体类型 struct 共用体类型 union 枚举类型 enum 基本类型 整型 int 字符型 char 浮点型 单精度实型 float 双精度实型double
清华大学出版社 TSINGHUA UNIVERSITY PRESS §3.2常量与变量 32.1常量和符号常量 在程序运行过程中其值不能被改变的量称为常量 小数点不可丢 整型5-12010-0100XE或心前不空,后为整 规范化指数形式:123e3 实型01212.123e3 分普通字符和转义字符P48 字符型‘aA2“$n-101^x2A 字符串 study hard!a”a0 字符串都是用字符数组实现 语言程序设计(第三版)‖http:/iCcf.tsinghua.edu.cn7
C语言程序设计(第三版) http://ccf.tsinghua.edu.cn 7 §3.2 常量与变量 3.2.1 常量和符号常量 • 在程序运行过程中,其值不能被改变的量称为常量 整型 5 -12 010 -010 0x2 -0x2F 实型 0.12 12. 12.3e3 -1E4 字符型‘a’ ‘A’ ‘2’ ‘$’ ‘\n’ ‘\\’ ‘\101’ ‘\x2A’ 字符串 “study hard!” “a” 小数点不可丢 E或e前不空,后为整 规范化指数形式:1.23e3 分普通字符和转义字符P48 a \0 字符串都是用字符数组实现
清华大学出版社 TSINGHUA UNIVERSITY PRESS 符号常量:用一个标识符代表一个常量,如可定义PI=3.14 #define Price 30 #include stdio. h> void main int num. total num=10 ot1、含义清楚,见名知意 prin 2、一改全改 3、不是变量,不可被赋值 4、符号常量多用大写表示 语言程序设计(第三版)‖http:/iCcf.tsinghua.edu.cn8
C语言程序设计(第三版) http://ccf.tsinghua.edu.cn 8 #define PRICE 30 #include void main ( ) { int num, total; num=10; total=num * PRICE; printf(″total=%d\n″,total); } 1、含义清楚,见名知意 2、一改全改 3、不是变量,不可被赋值 4、符号常量多用大写表示 符号常量:用一个标识符代表一个常量,如可定义PI=3.14
清华大学出版社 TSINGHUA UNIVERSITY PRESS 322变量 变量代表内存中具有特定属性的一个存储单 元,变量的值就是当中存放的数据,程序运 行期间当中存放的数据可变 为变量赋值就是根据变量名找到相应存储单 元,之后将数据写入其中;取变量的值就是 通过变量名找到相应的内存地址,之后从该 存储单元中读取数据 变量使用前必须声明,且最好见名知意 语言程序设计(第三版)‖http:/iCcf.tsinghua.edu.cn9
C语言程序设计(第三版) http://ccf.tsinghua.edu.cn 9 • 变量代表内存中具有特定属性的一个存储单 元,变量的值就是当中存放的数据,程序运 行期间当中存放的数据可变 • 为变量赋值就是根据变量名找到相应存储单 元,之后将数据写入其中;取变量的值就是 通过变量名找到相应的内存地址,之后从该 存储单元中读取数据 • 变量使用前必须声明,且最好见名知意 3.2.2 变量
§3.3整型数据 TSINGHUA UNIVERSITY PRESS 33.整型常量的表示方法(略) 332整型变量 (1)整型数据在内存中的存放形式:二进制补码 如:inti;/TC为两者各分配两字节空间* =10; 0(00000000(000|1010 j=-10 为何用补码?士0的统一、使符号位能一起参与运 算简化运算规则、减法变加法从而简化线路设计 语言程序设计(第三版)‖http:/iCcf.tsinghua.edu.cn10
C语言程序设计(第三版) http://ccf.tsinghua.edu.cn 10 §3.3 整型数据 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 3.3.1整型常量的表示方法(略) 3.3.2 整型变量 (1)整型数据在内存中的存放形式:二进制补码 如: int i,j; /*TC为两者各分配两字节空间 */ i=10; j= -10 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 为何用补码?± 0的统一、使符号位能一起参与运 算简化运算规则、减法变加法从而简化线路设计