1、a1 第三章第三章 顺序程序设计顺序程序设计 3.1 3.1 顺序程序设计举例顺序程序设计举例(略)a2 3.2 3.2 数据的表现形式及其运算数据的表现形式及其运算 3.2.1 3.2.1 常量与变量常量与变量 常量与符号常量常量与符号常量 常量常量 在程序运行过程中其值保持不变的量。在程序运行过程中其值保持不变的量。符号常量符号常量 用来代表一个常量的标识符。#define PI 3.1415926#define PI 3.1415926a3 例:例:#define#define PIPI 3.1415926 3.1415926 main()main()float float r r=2,
2、=2,c c;c c=2=2*PIPI*r r;printf(“%f”,printf(“%f”,c c););a4 变量变量 其值可以改变的量。其值可以改变的量。变量的三要素变量的三要素:变量名变量名每个变量有一个名字,作为识别该变量的每个变量有一个名字,作为识别该变量的标识符。标识符。变量的值变量的值 每个变量有一个值,变量的值是随时每个变量有一个值,变量的值是随时可以改变的。可以改变的。a5 变量的存储单元变量的存储单元 每个变量占据一个内存单元,用于存放变量每个变量占据一个内存单元,用于存放变量的值的值。变量名 a 变量值 存储单元3a6 变量的命名规则:变量的命名规则:由字母、数字和下
3、划线组成由字母、数字和下划线组成 以字母或下划线开头以字母或下划线开头 a a、x1x1、y_2y_2、_b1_b1、_1c _1c 合法合法 1x1x、a+2a+2、不合法不合法 变量必须先定义后使用。变量必须先定义后使用。程序中何时使用常量?何时使用变量?程序中何时使用常量?何时使用变量?a7 3.2.2 3.2.2 数据类型数据类型 在程序设计中需要根据需要选择合适的在程序设计中需要根据需要选择合适的“类型类型”来定义变量。来定义变量。可选择的数据类型见图可选择的数据类型见图3.4 基本类型基本类型整型浮点型字符型整型浮点型字符型 枚举类型枚举类型 空类型空类型 派生类型派生类型a8 3
4、.2.3 3.2.3 整型数据整型数据 整型常量整型常量 即整常数,即整常数,c c的整常数有三种形式:的整常数有三种形式:十进制整数十进制整数 与数学中的整数一致,如:与数学中的整数一致,如:100100,123123,1515等。等。八进制整数八进制整数 以以0 0开头的整数,如:开头的整数,如:010,07,020010,07,020等。等。十六进制整数十六进制整数 以以0 x0 x开头的整数,如:开头的整数,如:0 x10,0 xff,0 x2a0 x10,0 xff,0 x2a等。等。a9 整型变量整型变量 用于存放整数的变量。用于存放整数的变量。分分4 4种类型:种类型:基本型:基
5、本型:int aint a 16 16位,可表示的数值范围:位,可表示的数值范围:-3276832767-3276832767 32 32位,数值范围:位,数值范围:-21474836482147483647-21474836482147483647 短整型:短整型:short int bshort int b 16 16位,可表示的数值范围:位,可表示的数值范围:-3276832767-3276832767 长整型:长整型:long int clong int c 32 32位,数值范围:位,数值范围:-21474836482147483647-21474836482147483647a10
6、 无符号型:加上无符号型:加上 unsignedunsigned 只存放正数。只存放正数。如:如:unsigned short int xunsigned short int x 变量变量x x为无符号整数,为无符号整数,1616位全表示数码,位全表示数码,数值范围:数值范围:065535065535 在程序设计中,如果要使用整型变量,在程序设计中,如果要使用整型变量,必须首先选择以上类型符来定义变量,然必须首先选择以上类型符来定义变量,然后才能使用;后才能使用;a11 例:例:main()main()定义定义 int a,b,c;int a,b,c;a=100;b=50;a=100;b=50
7、;使用使用 c=a+b;c=a+b;printf(“%d”,c);printf(“%d”,c);一般根据什么原则选择变量的类型?一般根据什么原则选择变量的类型?a123.2.4 3.2.4 字符型数据字符型数据 字符常量字符常量 用单引号括起来的一个字符。用单引号括起来的一个字符。a,x,a,x,*,1,1等等 除 此 外,以除 此 外,以 开 头 的 字 符开 头 的 字 符如如n,tn,t等等 称为转义字符,祥见书表称为转义字符,祥见书表3.13.1a13字符型变量字符型变量 用于存放字符的变量。用于存放字符的变量。char c1,c2 char c1,c2 定义定义c1c1和和c2c2为
8、字符型变量为字符型变量 c1=a;c2=b;c1=a;c2=b;字符赋值字符赋值 字符型变量存放一个字符,占据一个字节字符型变量存放一个字符,占据一个字节a14字符型数据的存储形式字符型数据的存储形式 存放ASCII码 不是 而是 如字符如字符aa在内存中存放在内存中存放9797,b b 存存放放9898。与整数的存储形式一致,它们之间可以与整数的存储形式一致,它们之间可以通用通用 一个字符数据既可以作字符用,也可以一个字符数据既可以作字符用,也可以作整数用(取其作整数用(取其ASCIIASCII代码)。代码)。如:如:32+a32+a相当于相当于 32+9732+97 若若 int x;ch
9、ar c;int x;char c;则则 x=a;c=97;x=97;c=a;x=a;c=97;x=97;c=a;都都允许允许 a15字符串常量字符串常量 用双引号括起来的字符序列。用双引号括起来的字符序列。如:如:”abcde”abcde”,”china”china”a a”也属字符串。也属字符串。注意注意”a”a”与与aa的区别。的区别。对于:对于:char c;char c;c=”a”;c=”a”;用法错误用法错误a16字符串中每个字符各占一个字节,并且在字符字符串中每个字符各占一个字节,并且在字符串结尾加上一个结束标记串结尾加上一个结束标记00 如:如:”china”china”在内存
10、中占在内存中占6 6个字节。个字节。c h i n a 0 C C语言中专门的字符串变量,可用字符数组语言中专门的字符串变量,可用字符数组存放(以后介绍)。存放(以后介绍)。a17 3.2.5 3.2.5 实型数据实型数据 实型常量实型常量 可使用两种形式表示:可使用两种形式表示:小数形式:小数形式:如如 1.23,3.1415926 15.481.23,3.1415926 15.48 指数形式:指数形式:如如 1e-20 1.23e5 1e-20 1.23e5 a18 实型变量实型变量 用于存放实数的变量用于存放实数的变量 分单精度和双精度两种:分单精度和双精度两种:float a,bflo
11、at a,b 定义定义a a和和b b为单精度型变量为单精度型变量 3232位,位,7 7位有效数字,位有效数字,1010-38-3810103838 double x,ydouble x,y 定义定义x x和和y y为双精度型变量为双精度型变量 6464位,位,1515位有效数字,位有效数字,1010-308-3081010308308a19 例:例:main()main()float r,c;float r,c;double r,c;double r,c;r=5;r=5;c=2 c=2*3.14159263.1415926*r;r;printf(“%f”,c);printf(“%f”,c)
12、;a20 3.2.6 3.2.6 各数值型数据间的混合运算各数值型数据间的混合运算 整型、实型、字符型数据间可以进行混合运整型、实型、字符型数据间可以进行混合运算,如:算,如:10-a10-a*1.51.5 运算时,参加运算的两个数据如果类型不同,运算时,参加运算的两个数据如果类型不同,则首先将其类型转换成一致再运算,转换规则则首先将其类型转换成一致再运算,转换规则是:是:将优先级低的类型转换到优先级高的类型将优先级低的类型转换到优先级高的类型a21 数据类型的优先级:数据类型的优先级:高高 double floatdouble float long long unsignde unsignd
13、e 低低 int charint chara22 3.2.7 3.2.7 算术运算符与算术表达式算术运算符与算术表达式 基本的算术运算符基本的算术运算符 +-*/%算术表达式算术表达式 用算术运算符将运算对象连接起来的式子用算术运算符将运算对象连接起来的式子 用于表达数学公式的式子用于表达数学公式的式子 如:如:2 2*x+y-1/ax+y-1/a 表达式经过运算最终得到一个值:表达式经过运算最终得到一个值:算术表达式的值算术表达式的值a23 运算符的优先级与结合性运算符的优先级与结合性 优先级:优先级:在对表达式求值时,如果存在多个运算符,则在对表达式求值时,如果存在多个运算符,则运算的先后
14、次序按运算符的优先级别从高到底进运算的先后次序按运算符的优先级别从高到底进行。行。运算符的优先级关系为:运算符的优先级关系为:高:高:*/%/%低:低:+-+-如:如:a-2a-2*x x 先算先算 *2 2*(a+2)(a+2)有括号的情况?有括号的情况?a24 结合性:结合性:如果在一个运算对象两边的运算符的优先级相如果在一个运算对象两边的运算符的优先级相同,则按规定的同,则按规定的“结合方向结合方向”处理。处理。如:如:a-b+ca-b+c b b与与-结合是从左到右,称结合是从左到右,称“左结合性左结合性”。b b与与+结合是从右到左,称结合是从右到左,称“右结合性右结合性”。每个运算
15、符都有相应的优先级和结合性。每个运算符都有相应的优先级和结合性。基本算术运算符都是基本算术运算符都是左结合性左结合性。a25计算表达式例:计算表达式例:2+A-1/2.0 1+3/2-12+A-1/2.0 1+3/2-1构造表达式例构造表达式例 2x2x2 2+3x-1+3x-1 a+b a-b a+b a-b x+y x-ya+b/a-b?(a+b)/(a-b)2*x*x+3*x-1 (*不能省)(a+b)/(a-b)/(x+y)/(x-y)(a+b)/(a-b)/(x+y)/(x-y)(a+b)/(a-b)/(x+y)*(x-y)a26 强制类型转换强制类型转换可以用强制类型转换运算符将一
16、个表达式可以用强制类型转换运算符将一个表达式的值转换成所需类型:的值转换成所需类型:如:如:(int)(x+y)(int)(x+y)(float)(7%3)(float)(7%3)a27 应用举例:应用举例:若在若在Turbo CTurbo C下运行:下运行:int a=200,b=300,c;int a=200,b=300,c;c=a c=a*b/100;b/100;?可知,有自动转换和强制转换,可知,有自动转换和强制转换,当自动转换达不到目的时,可用强制转换。当自动转换达不到目的时,可用强制转换。c=(long)a*b/100;c=(long)(a*b)/100;a28 自增、自减运算符自
17、增、自减运算符 自增运算符:自增运算符:+使变量值加使变量值加1 1 自减运算符:自减运算符:-使变量值减使变量值减1 1 两种用法:两种用法:+i,-i +i,-i 先加(减)后用先加(减)后用 i+,i-i+,i-先用后加(减)先用后加(减)两种用法对两种用法对i i效果一样,但表达式的值不同。效果一样,但表达式的值不同。例例:假设:假设i i的原值为的原值为5 5:j=+i;j=?j=+i;j=?j=i+;j=?j=i+;j=?a29 注意:注意:+和和-只能用于变量。只能用于变量。如:如:3+3+和(和(a+1a+1)+不合法不合法+和和-为右结合性。为右结合性。(-i)+(-i)+-
18、i+-i+-(i+)-(i+)若若i i的原值是的原值是5 5,则该表达式的值是多少?,则该表达式的值是多少?a30 例:分析执行下列语句后的结果:例:分析执行下列语句后的结果:a=5;a=5;a b c da b c d b=a+;b=a+;c=-a-b+;c=-a-b+;d=(a+)-(+b)+c-;d=(a+)-(+b)+c-;556 506 7-26-1a31 两种特殊情况:两种特殊情况:k=(i+)+(i+)+(i+)k=(i+)+(i+)+(i+)i+j i+j 是是 i+(+j)i+(+j)还是还是 (i+)+j(i+)+j?i+i+虽然与虽然与i=i+1i=i+1等效,但使用自
19、增自减等效,但使用自增自减运算符的代码优化程度好,因而经常使用;运算符的代码优化程度好,因而经常使用;但用时需特别小心。但用时需特别小心。a32 3.2.8 3.2.8 赋值运算符和赋值表达式赋值运算符和赋值表达式 赋值运算符赋值运算符 “=”=”称赋值运算符,其作用是将一个数据称赋值运算符,其作用是将一个数据赋给一个变量。赋给一个变量。如:如:a=5a=5 不要理解为不要理解为“等号等号”。执行赋值运算的结果,是将右边的数据存执行赋值运算的结果,是将右边的数据存入左边变量所对应的内存单元中。入左边变量所对应的内存单元中。a33 赋值规则赋值规则 如果赋值运算符两侧的类型不一致,则在赋如果赋值
20、运算符两侧的类型不一致,则在赋值时要进行类型转换,转换规则为:值时要进行类型转换,转换规则为:实型实型整变量整变量 舍去小数部分。舍去小数部分。int a=5.5;aint a=5.5;a中为中为5 5。整型整型实变量实变量 数值不变,以浮点形式存储。数值不变,以浮点形式存储。字符型字符型整变量整变量 放在整形变量低放在整形变量低8 8位。保持原值不变原则。位。保持原值不变原则。int a=A;int a=A;a34 复合赋值运算符复合赋值运算符 在赋值运算符前加上其它运算符,可以构成在赋值运算符前加上其它运算符,可以构成复合赋值运算符。复合赋值运算符。a+=3 a+=3 a=a+3 a=a+
21、3 b-=x+5 b-=x+5 b=b-(x+5)b=b-(x+5)x x*=c-6=c-6 x=x x=x*(c-6)(c-6)y/=a y/=a*4 4 y=y/(a y=y/(a*4)4)k%=b-2 k%=b-2 k=k%(b-2)k=k%(b-2)属于高效率运算符。属于高效率运算符。a35 赋值表达式赋值表达式 主要实现赋值运算的表达式。主要实现赋值运算的表达式。一般形式:一般形式:=如:如:a=5 y=2a=5 y=2*x+3 a=a+1x+3 a=a+1 不是衡等不是衡等作用:作用:将右边表达式的值赋给左边的变量将右边表达式的值赋给左边的变量。赋值表达式的值取左边变量的值。赋值表
22、达式的值取左边变量的值。a36 赋值表达式右边的赋值表达式右边的 可以是任何表可以是任何表达式,如:达式,如:a=(b=5)a=(b=5)赋值表达式中包含赋值表达式赋值表达式中包含赋值表达式 赋值运算符的优先级低于所有算术运算符,赋值运算符的优先级低于所有算术运算符,且是右结合性。且是右结合性。a=(b=5)a=(b=5)与与 a=b=5a=b=5 等效。等效。a37 例:计算以下表达式的值:例:计算以下表达式的值:a=b=c=5a=b=c=5 a=5+(c=6)a=5+(c=6)a=(b=4)+(c=6)a=(b=4)+(c=6)a=(b=4.5)+(c=6.5)a=(b=4.5)+(c=6
23、.5)(a a、b b、c c为整型变量)为整型变量)a+=a-=aa+=a-=a*a a (设设a a的原值为的原值为3)3)a38 赋值表达式是赋值表达式是C C语言中的一个重要成分,语言中的一个重要成分,在赋值表达式后加一分号就成为常用的赋值在赋值表达式后加一分号就成为常用的赋值语句。如语句。如 y=2y=2*x+1;x+1;赋值表达式作为表达式的一种,可以出赋值表达式作为表达式的一种,可以出现在任何表达式中,如:现在任何表达式中,如:x+2-(b/3-(x+2-(b/3-(a=k-5a=k-5)+b)+ba39 3.2.9 3.2.9 逗号表达式逗号表达式 逗号也是一种运算符,用它对两
24、个表达式逗号也是一种运算符,用它对两个表达式实现连接运算。实现连接运算。3+5,6+8 3+5,6+8 称称逗号表达式逗号表达式。逗号表达式的一般形式:逗号表达式的一般形式:表达式表达式1 1,表达式,表达式2 2 取取表达式表达式2 2的值作为整个逗号表达式的值。的值作为整个逗号表达式的值。如:如:a=3a=3*5,a5,a*4 4 逗号表达式的值为:逗号表达式的值为:6060a40 一个逗号表达式又可以与另一个表达式组成一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,如:一个新的逗号表达式,如:(a=3(a=3*5,a5,a*4),a+54),a+5 因此,逗号表达式的一般形式可
25、以扩展为:因此,逗号表达式的一般形式可以扩展为:表达式表达式1 1,表达式,表达式2 2,表达式,表达式3 3,,表达式表达式n n 取取表达式表达式n n的值作为整个逗号表达式的值。的值作为整个逗号表达式的值。逗号运算符的优先级最低逗号运算符的优先级最低,且是左结合性。且是左结合性。逗号运算符只起到连接作用,没有实际操作逗号运算符只起到连接作用,没有实际操作。a413.3 3.3 最简单的最简单的C C程序设计程序设计 C C 程序最基本的成分是语句程序最基本的成分是语句 目前我们已掌握的语句:目前我们已掌握的语句:变量说明语句变量说明语句:int a,b,c;int a,b,c;表达式语句
26、:表达式语句:x+y;x+y;特别地:特别地:a=5;a=5;赋值语句赋值语句a42 可以编写简单程序如:可以编写简单程序如:main()main()int x,y;int x,y;x=5;x=5;y=2 y=2*x x*x+3x+3*x-1;x-1;该程序语法上完整,但还缺少输出。该程序语法上完整,但还缺少输出。a43 数据的输出数据的输出 用输出函数实现用输出函数实现,其中的两种输出函数:其中的两种输出函数:1.putchar 1.putchar 函数函数 (字符输出函数)(字符输出函数)用于输出一个字符。用于输出一个字符。如如:putchar(a);putchar(100);char c
27、=b;putchar(c);a44 例例:输出单词:输出单词BoyBoy的完整程序:的完整程序:#include“stdio.h”注意该语句的作用注意该语句的作用 main()char a,b,c;a=B;b=o;c=y;putchar(a);putchar(b);putchar(c);a45 2.printf2.printf函数函数(格式输出函数)(格式输出函数)任意类型、任意格式、任意个数。任意类型、任意格式、任意个数。例如:例如:int a=100,b=56;int a=100,b=56;printfprintf(“a=%d,b=%d”“a=%d,b=%d”,a,ba,b););普通字符
28、普通字符 格式说明格式说明 格式控制格式控制 输出表列输出表列 输出结果:输出结果:a=100,b=56a=100,b=56“%”“%”后的字符称格式字符,不同格式字符对应不同的数据类型。后的字符称格式字符,不同格式字符对应不同的数据类型。a46 d d格式符:格式符:按整数格式输出按整数格式输出 几种用法:几种用法:%d%d 不指定宽度,按实际宽度输出不指定宽度,按实际宽度输出%md%md 按指定宽度输出,按指定宽度输出,m m为宽度为宽度%ld%ld 用于输出长整型数用于输出长整型数a47 例:例:int a=125,b=453;int a=125,b=453;long c=65535;l
29、ong c=65535;printf(“a=%d,b=%5d,c=%ld”,a,b,c);printf(“a=%d,b=%5d,c=%ld”,a,b,c);输出结果:输出结果:a=125,b=453,c=65535a=125,b=453,c=65535a48%ld%ld也可以按指定宽度输出:也可以按指定宽度输出:printf(“c=%8ld”,c);printf(“c=%8ld”,c);输出结果:输出结果:c=65535c=65535注意:格式字符的类型要与对应的输出对象注意:格式字符的类型要与对应的输出对象的类型一致。的类型一致。a49 c c格式符:格式符:用于输出字符用于输出字符 cha
30、r c=A;char c=A;printf(“c=%c,%c”,c,B);printf(“c=%c,%c”,c,B);输出结果输出结果:c=A,Bc=A,B 输出对象既可以是字符变量、字符常量,还输出对象既可以是字符变量、字符常量,还可以是整型表达式。可以是整型表达式。a50 如:如:int a=100;int a=100;char b=A;char b=A;printf(“n%d,%c”,a,a);printf(“n%d,%c”,a,a);printf(“n%c,%d”,b,b);printf(“n%c,%d”,b,b);输出结果:输出结果:100,d100,d A,65 A,65a51 s
31、 s格式符:格式符:用于输出字符串用于输出字符串%s%s 不指定宽度不指定宽度%-ms%-ms 指定宽度,左靠齐指定宽度,左靠齐%ms%ms 指定宽度,右靠齐指定宽度,右靠齐%m.ns%m.ns 指定宽度指定宽度m m,只取左端,只取左端n n个字符,个字符,右靠齐右靠齐%-m.ns%-m.ns 指定宽度指定宽度m m,只取左端,只取左端n n个字符,个字符,左靠齐左靠齐a52例:例:printf(“1:%s”,”abcd”);printf(“1:%s”,”abcd”);printf(“2:%8s”,”abcd”);printf(“2:%8s”,”abcd”);printf(“3:%-8s”,
32、”abcd”);printf(“3:%-8s”,”abcd”);printf(“4:%8.3s”,”abcd”);printf(“4:%8.3s”,”abcd”);printf(“5:%-8.3s”,”abcd”);printf(“5:%-8.3s”,”abcd”);1:abcd2:abcd3:abcd 4:abc5:abc 1:abcd2:abcd3:abcd 4:abc5:abc a53 f f格式符:格式符:按小数形式输出实数按小数形式输出实数%f%f 由系统指定宽度(由系统指定宽度(6 6位小数)位小数)%m.nf%m.nf 指定宽度指定宽度m m,小数位数,小数位数n n,右靠齐,右
33、靠齐%-m.nf%-m.nf 指定宽度指定宽度m m,小数位数,小数位数n n,左靠齐,左靠齐 注意:宽度包括符号和小数点注意:宽度包括符号和小数点。a54例:例:float a=3.141592654,b=14.326795,float a=3.141592654,b=14.326795,c=-125.2468;c=-125.2468;p r i n t f(“n a=%f,b=%8.3 f,c=%-p r i n t f(“n a=%f,b=%8.3 f,c=%-10.2f”,a,b,c);10.2f”,a,b,c);输出结果:输出结果:a=3.141592,b=14.326,c=-125
34、.24a=3.141592,b=14.326,c=-125.24 a55完整前面的程序:完整前面的程序:main()main()int x,y;int x,y;x=5;x=5;y=2 y=2*x x*x+3x+3*x-1;x-1;printf(“n y=%d”,y);printf(“n y=%d”,y);a56程序设计例:程序设计例:编写程序计算如图中的电流编写程序计算如图中的电流I I.假设假设 U=220,R1=30,R2=60,R3=45U=220,R1=30,R2=60,R3=45UIR1R2R3a57算法设计算法设计:I=U/R1+U/R2+U/R3I=U/R1+U/R2+U/R3程
35、序设计:程序设计:main()main()I=U/R1+U/R2+U/R3;I=U/R1+U/R2+U/R3;int U=220,R1=30,R2=60,R3=45;int U=220,R1=30,R2=60,R3=45;float I;float I;printf(“n printf(“n I=%f”,I);I=%f”,I);a58 正确的程序:正确的程序:main()main()int U=220,R1=30,R2=60,R3=45;int U=220,R1=30,R2=60,R3=45;float I;float I;I=I=(float)(float)U/R1+U/R1+(float)
36、(float)U/R2+U/R2+(float)(float)U/R3;U/R3;printf(“n I=%f”,I);printf(“n I=%f”,I);a59 考虑通用考虑通用:main()main()int U,R1,R2,R3;int U,R1,R2,R3;float I;float I;输入输入 U,R1,R2,R3U,R1,R2,R3 I=(float)U/R1+(float)U/R2+(float)U/R3;I=(float)U/R1+(float)U/R2+(float)U/R3;printf(“n I=%f”,I);printf(“n I=%f”,I);a60 数据的输入数
37、据的输入 getchargetchar函数(函数(字符输入字符输入)#include“stdio.h”#include“stdio.h”main()main()char c;char c;c=getchar();c=getchar();等待键盘输入等待键盘输入 putchar(c);putchar(c);a61scanf scanf 函数函数(格式输入)与与printfprintf函数相反。函数相反。用于输入若干任意类型的数据。用于输入若干任意类型的数据。scanfscanf(“%d%d%d”“%d%d%d”,&a,&b,&c&a,&b,&c););格式控制格式控制 地址列表地址列表a62 s
38、canfscanf(“%d%d%d”“%d%d%d”,&a,&b,&c&a,&b,&c););执行此函数时,等待从键盘输入三个整执行此函数时,等待从键盘输入三个整数给数给a,b,ca,b,c 若从键盘输入若从键盘输入 3 5 83 5 8 则系统即从键盘缓冲区取出这三个数分则系统即从键盘缓冲区取出这三个数分别赋给别赋给a,b,ca,b,c 注意与注意与printfprintf的区别,注意格式的匹配的区别,注意格式的匹配a63如:如:scanf(“%3d%2d%4d”,&a,&b,&c);scanf(“%3d%2d%4d”,&a,&b,&c);若从键盘输入若从键盘输入12345678912345
39、6789 a=123,b=45,c=6789 a=123,b=45,c=6789 若想使若想使a=12,b=5,c=100a=12,b=5,c=100 则键盘输入应为:则键盘输入应为:12 5 10012 5 100 方便的输入格式一般不方便的输入格式一般不 指定宽度,指定宽度,如:如:scanf(“%d%d%d”,&a,&b,&c);scanf(“%d%d%d”,&a,&b,&c);a64 在键盘输入时,用分隔符把每个数据隔开,在键盘输入时,用分隔符把每个数据隔开,标准的分隔符是空格。标准的分隔符是空格。如:如:123 150 23123 150 23 若想用逗号作分隔符,则:若想用逗号作分
40、隔符,则:scanf(“%dscanf(“%d,%d%d,%d”,&a,&b,&c);%d”,&a,&b,&c);不要随便使用普通字符,如使用:不要随便使用普通字符,如使用:scanf(“a=%dscanf(“a=%d,b=%d c=%d”,&a,&b,&c)b=%d c=%d”,&a,&b,&c)对应数据输入:对应数据输入:a=123,b=150,c=23a=123,b=150,c=23a65 前面的欧姆定律前面的欧姆定律:main()main()int U,R1,R2,R3;int U,R1,R2,R3;float I;float I;scanf(“%d%d%d%d”,&U,&R1,&R2
41、,&R3);scanf(“%d%d%d%d”,&U,&R1,&R2,&R3);I=(float)U/R1+(float)U/R2+(float)U/R3;I=(float)U/R1+(float)U/R2+(float)U/R3;printf(“n I=%f”,I);printf(“n I=%f”,I);a66求三角形面积求三角形面积#include “math.h”main()float a,b,c,area,s;scanf(“%f,%f,%f”,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“n area=%f”,area);使用数学函数使用数学函数a67使用三角函数使用三角函数#include “math.h”main()float x,y;scanf(“%f”,&x);y=sin(x*3.1415926/180);以弧度为单位以弧度为单位 printf(“n y=%f”,y);