《c语言-第3章顺序结构程序设计资料.ppt》由会员分享,可在线阅读,更多相关《c语言-第3章顺序结构程序设计资料.ppt(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 三三 章章顺序结构程序设计顺序结构程序设计程序是对数据进行各种操作,其中程序是对数据进行各种操作,其中运算操作运算操作是最基本的操作是最基本的操作之一。之一。在在C语言程序中,使用语言程序中,使用表达式表达式描述各种运算。描述各种运算。表达式表达式是由参与运算的数据和表示运算的符号,按照一定的是由参与运算的数据和表示运算的符号,按照一定的规则组成的式子。规则组成的式子。描述运算的符号称为描述运算的符号称为运算符运算符,由一个或两个特定符号表示。,由一个或两个特定符号表示。引言引言2语言具有丰富的运算符,可分为多种类型,包括:语言具有丰富的运算符,可分为多种类型,包括:(1)算术运算符算术
2、运算符(+-*/%)(2)关系运算符关系运算符(=!=)(3)逻辑运算符逻辑运算符(!(!|)(4)位运算符位运算符 (|)(5)赋值运算符赋值运算符(=+=-=*=/=%=等)等)(6)条件运算符条件运算符(?(?:)(7)逗号运算符逗号运算符 (,),)引言引言3(8)指针运算符指针运算符(*和)和)(9)求字节数运算符(求字节数运算符(sizeof)(10)强制类型转换运算符(强制类型转换运算符((类型)类型))(11)分量运算符(分量运算符(-)(12)下标运算符()下标运算符()(13)其他其他(如函数调用运算符()(如函数调用运算符()引言引言4主要内容主要内容3.1 算术运算和算
3、术表达式算术运算和算术表达式3.2 赋值运算和赋值表达式赋值运算和赋值表达式3.3 自增自减运算自增自减运算3.4 优先级和类型转换优先级和类型转换3.5 使用数学库函数使用数学库函数3.6 顺序结构程序设计顺序结构程序设计 53.1 算术运算和算术表达式算术运算和算术表达式3.1.1 整数算术运算整数算术运算3.1.2 实数算术运算实数算术运算3.1.3 混合算术运算混合算术运算3.1.4 算术表达式算术表达式3.1.5 算术表达式的计算规则算术表达式的计算规则6C语语言中的操作言中的操作算算术术运算符运算符加法运算加法运算+减法运算减法运算-乘法运算乘法运算*除法运算除法运算/取模运算(求
4、余数)取模运算(求余数)%表表3-1 算术运算符算术运算符注意注意加号(加号(+)除了可以表示两个数相加外,还表示正号,例如,)除了可以表示两个数相加外,还表示正号,例如,+5;减号(减号(-)除了可以表示两个数相减外,还表示负号,例如)除了可以表示两个数相减外,还表示负号,例如-12。C语言中使用的特殊符号,星号(语言中使用的特殊符号,星号(*)表示乘号,)表示乘号,斜杠(斜杠(/)表示除号,百分号()表示除号,百分号(%)表示求余数。)表示求余数。另外另外73.1.1 3.1.1 整数算术运算整数算术运算如果参与运算的操作数都是如果参与运算的操作数都是整数整数,运算的,运算的结果结果一定是
5、一定是整数整数。例如,例如,3+5,5-7,4*3,6/4,7%4,3/5,3%5%运算符只能用于运算符只能用于整数整数运算。运算。思考:思考:1+1/2的运算结果是多少?的运算结果是多少?8,-2,12,1,3,0,3注意注意C语言规定语言规定83.1.2 3.1.2 实数算术运算实数算术运算例如,例如,3.4+5.7,5.1-7.3,4.7*3.2,6.5/4.6思考:思考:1.0+1.0/2.0的运算结果是多少?的运算结果是多少?C语言规定语言规定如果参与运算的操作数都是如果参与运算的操作数都是实数实数,运算的,运算的结果结果一定是一定是实数实数。9.1,-2.2,15.04,1.41注
6、意注意实数不能使用运算符实数不能使用运算符%。9如果参与运算的操作数一个是如果参与运算的操作数一个是整数整数,另一个是,另一个是实数实数,运算的结果一定是运算的结果一定是实数实数。3.1.3 3.1.3 混合算术运算混合算术运算例如,例如,3+5.7,5.1-7,4.7*3,6/4.6C语言规定语言规定8.7,-1.9,12.7,1.3注意注意混合运算情况下也不能使用运算符混合运算情况下也不能使用运算符%。103.1.4 3.1.4 算术表达式算术表达式由参与算术运算的操作数(可以是常量、变量、函数等)、由参与算术运算的操作数(可以是常量、变量、函数等)、算术运算符和圆括号组成的符合算术运算符
7、和圆括号组成的符合C语言语法规则的式子。语言语法规则的式子。概念概念注意注意C语言中的算数表达式书写形式和代数中的算术表达式类似,语言中的算数表达式书写形式和代数中的算术表达式类似,但但C语言中的算术表达式语言中的算术表达式必须写成一行必须写成一行的形式。的形式。例如,代数中的例如,代数中的 ,在,在C语言中必须写成语言中必须写成3/5的形式。的形式。代数表达式代数表达式C语言表达式语言表达式举例举例 是常数,是常数,不可以写成不可以写成符号符号(x1+x2+x3+x4)/5b*b-4*a*c(a+b)/(c-d)3.1415926*r*ra/x+b*y113.1.5 3.1.5 算术表达式的
8、计算规则算术表达式的计算规则 如果没有括号,算术表达式按照运算符的如果没有括号,算术表达式按照运算符的优先规则优先规则从左到右从左到右计算。计算。如果有括号,括号中的表达式优先级别是最高的,要先计算括号中的表达式。如果有括号,括号中的表达式优先级别是最高的,要先计算括号中的表达式。高级:高级:*/%低级:低级:+-8-13/5+4*8-7+6%3优先规则优先规则举例举例18-2+32-7+233举例举例2(8-13)/5+4)*8-(7+6%3)07-5-132417123.2 赋值运算和赋值表达式赋值运算和赋值表达式3.2.1 赋值运算符赋值运算符3.2.2 赋值运算的类型转换问题赋值运算的
9、类型转换问题3.2.3 复合的赋值运算符复合的赋值运算符3.2.4 赋值表达式赋值表达式C语言将赋值操作作为一种运算。语言将赋值操作作为一种运算。133.2.1 3.2.1 赋值运算符赋值运算符一般表达形式一般表达形式其中,表达式可以是常量、变量、函数等。其中,表达式可以是常量、变量、函数等。例如:例如:赋值运算过程赋值运算过程a=3b=sum/30先计算赋值运算符(先计算赋值运算符(=)右边的表达式的值,然后将计)右边的表达式的值,然后将计算结果赋给赋值运算符(算结果赋给赋值运算符(=)左边的变量。)左边的变量。例如,例如,sum=3000时,执行时,执行b=sum/30,先计算先计算sum
10、/30的值,结果为的值,结果为100,然后将然后将100赋值给变量赋值给变量b,结果是变量,结果是变量b的值为的值为100。赋值运算符赋值运算符=变量变量=表达式表达式143.2.2 3.2.2 赋值运算的类型转换问题赋值运算的类型转换问题我们经常会遇到赋值运算符两侧的数据类型不一致的情况,我们经常会遇到赋值运算符两侧的数据类型不一致的情况,这时在执行赋值运算时就要进行类型转换。这时在执行赋值运算时就要进行类型转换。转换时,以赋值运算符转换时,以赋值运算符左侧的变量左侧的变量的类型为准进行。的类型为准进行。例如:有定义例如:有定义 int a;float x;执行执行 a=45.78时,时,a
11、的取值是的取值是45。执行执行x=623时,时,x的取值是的取值是623.000000。类型转换准则类型转换准则15C语言允许将形式为:语言允许将形式为:变量变量=变量变量 算术运算符算术运算符 表达式表达式的表达式简洁地写成:的表达式简洁地写成:变量变量 算术运算符算术运算符=表达式表达式3.2.3 3.2.3 复合的赋值运算符复合的赋值运算符C C语言中的操作语言中的操作复合赋值运算符复合赋值运算符加赋值运算加赋值运算+=+=减赋值运算减赋值运算-=-=乘赋值运算乘赋值运算*=除赋值运算除赋值运算/=/=取余赋值运算取余赋值运算%=%=16例如:例如:要求掌握的复合赋值运算符:要求掌握的复
12、合赋值运算符:,*,a+=1 x-=y+1a*=b x/=n+1x%=10a=a+1x=x-(y+1)a=a*bx=x/(n+1)x=x%10以下程序的输出结果是以下程序的输出结果是_。void main()void main()intint a=3;a=3;printf(%dn,(aprintf(%dn,(a+=a-=a*a);+=a-=a*a);A A)-6 B-6 B)12 C12 C)0 D0 D)-12-12D举例举例173.2.4 3.2.4 赋值表达式赋值表达式由赋值运算符将一个变量和一个表达式连接起来的式子。由赋值运算符将一个变量和一个表达式连接起来的式子。例如例如:“x5+6
13、*a”是一个赋值表达式是一个赋值表达式。如果。如果a=10,则,则C语言规定,表达语言规定,表达式式5+6*a的值为的值为65,变量,变量x赋值后的值为赋值后的值为65,表达式,表达式x5+6*a的值也为的值也为65。例如例如:x=(y=15)其中赋值运算符右侧的表达式,可以是算术表达式,也可以是其中赋值运算符右侧的表达式,可以是算术表达式,也可以是一个一个赋值表达式赋值表达式。赋值运算符按照赋值运算符按照“自右而左自右而左”的结合顺序,因此,的结合顺序,因此,x=(y=15)和和x=y=15等价。等价。赋值表达式赋值表达式赋值表达式的值赋值表达式的值被赋变量的值被赋变量的值注意注意18例例1
14、float a;int b;a=1.2;b=a*3;?b b=3例例2a+=3;x*=y+8;a=a+3;x=x*(y+8);例例3a=b=5;a=7+(b=8);?a,b a=5;b=5a=15;b=8自右而左自右而左的结合性的结合性例例4a=10;a+=a*=a;?a a=200例例5y=23;printf(%d,x=y);?x 输出输出x=2323在一个语句中可以在一个语句中可以完成赋值和输出完成赋值和输出两种操作功能两种操作功能193.3 3.3 自增自减运算自增自减运算自增、自减自增、自减运算符运算符作用:自增运算符()使作用:自增运算符()使单个单个变量的值增变量的值增1;自减运算
15、符()使自减运算符()使单个单个变量的值减变量的值减1。i=i+1i=i-1格式:格式:前置:前置:+i,-i(在使用在使用i之前,使之前,使i的值加(减)的值加(减)1)后置:后置:i+,i-(在使用在使用i之后,使之后,使i的值加(减)的值加(减)1)几点几点说明说明(1)自增自减运算符只对自增自减运算符只对单个变量单个变量进行操作,称为单目运算符或一进行操作,称为单目运算符或一元运算符。不能用于常量和表达式。元运算符。不能用于常量和表达式。例如,例如,5+、-(a+b)等都是非法的。等都是非法的。(2)常用于循环语句中使循环控制变量自动加或减常用于循环语句中使循环控制变量自动加或减1,也
16、用于指,也用于指针变量,使指针指向上一个或下一个地址。针变量,使指针指向上一个或下一个地址。(3)对于对于+n和和n+,单独使用时意义相同,都是使变量,单独使用时意义相同,都是使变量n的值加的值加1。(4)如果用在赋值语句中,意义有所不同。如果用在赋值语句中,意义有所不同。int n=4,x,y;x=+n;/y=n+;?x,y x=5 /y=420例例3.1#include stdio.hint main()int n,x,y;n=4;x=+n;printf(n=%dtx=%dn,n,x);n=4;y=n+;printf(n=%dty=%dn,n,y);return 0;运行结果:运行结果:n
17、=5 x=5n=5 y=4自增运算符的前置、后置对比。自增运算符的前置、后置对比。21例例3.2#include stdio.hint main()int n,x,y;n=4;x=-n;printf(n=%dtx=%dn,n,x);n=4;y=n-;printf(n=%dty=%dn,n,y);return 0;运行结果:运行结果:n=3 x=3n=3 y=4自减运算符的前置与后置对比。自减运算符的前置与后置对比。22#include stdio.hint main()int n;n=4;printf(%dt,n);printf(%dt,+n);printf(%dnn,n);n=4;print
18、f(%dt,n);printf(%dt,n+);printf(%dnn,n);n=4;printf(%dt,n);printf(%dt,-n);printf(%dnn,n);n=4;printf(%dt,n);printf(%dt,n-);printf(%dnn,n);return 0;运行结果:运行结果:4 5 54 4 54 3 34 4 3例例3.3自增自减运算符在输出语句中。自增自减运算符在输出语句中。233.4 优先级和类型转换优先级和类型转换3.4.1 优先级优先级3.4.2 类型转换类型转换3.4.2.1 自动类型转换自动类型转换3.4.2.2 强制类型转换强制类型转换243.4
19、.1 3.4.1 优先级优先级优先级优先级结合性结合性 如果一个表达式中有多个运算符,那么用来规定运如果一个表达式中有多个运算符,那么用来规定运算先后顺序的规则称为优先级法则。算先后顺序的规则称为优先级法则。当表达式中参与运算的多个运算符具有相同优先级当表达式中参与运算的多个运算符具有相同优先级时,用来规定运算的先后顺序。时,用来规定运算的先后顺序。已经介已经介绍运算绍运算符的优符的优先级和先级和结合性结合性优先级优先级结合性结合性算数运算符算数运算符()()+,-,+,-(单目)(单目)*,/,%+,-由左向右由左向右由右向左由右向左由左向右由左向右由左向右由左向右赋值运算符赋值运算符=复合
20、赋值运算符复合赋值运算符由右向左由右向左253.4.23.4.2类型转换类型转换3.4.2.1自动类型转换自动类型转换不同类型数据参与运算时,将一种类型的数据转换为不同类型数据参与运算时,将一种类型的数据转换为另一种兼容的类型。另一种兼容的类型。double x;,x=45;/x取值为取值为45.0,整型数据,整型数据45自动转换为自动转换为double类型数据。类型数据。int a;a=123.756;/a取值取值123,小数部分被截去。,小数部分被截去。类型转换类型转换类型转换分类类型转换分类自动转换(隐式转换):转换隐藏在操作中自动转换(隐式转换):转换隐藏在操作中强制转换(显示转换):
21、使用强制转换运算符强制转换(显示转换):使用强制转换运算符自动转换举例自动转换举例2+4.5 /整型数据整型数据2转换为转换为double类型数类型数2.0,再与再与4.5进行加法运算进行加法运算,是自动转是自动转换过程。换过程。先先转换、后运算转换、后运算实型实型整型:整型:采取采取截去小数截去小数部分的策略,部分的策略,而不是四舍五入。而不是四舍五入。26转换规则转换规则doublefloatlongunsignedintchar,short高高低低 1、纵向向上的箭头表示不同类型的、纵向向上的箭头表示不同类型的 转换方向(由低类型转化为高类转换方向(由低类型转化为高类 型),不表示转换所
22、经的步骤。型),不表示转换所经的步骤。2、横向向左的箭头表示必须的转换。、横向向左的箭头表示必须的转换。自动类型转换规则自动类型转换规则说明说明:必定的转换必定的转换运算对象类型运算对象类型不同时转换不同时转换273.4.2.2 强制类型转换强制类型转换一般形式一般形式(要转换成的数据类型要转换成的数据类型)(被转换的表达式被转换的表达式)注:当被转换的表达式是一个简单表达注:当被转换的表达式是一个简单表达式时,外面的一对圆括号可以缺省。式时,外面的一对圆括号可以缺省。举例举例 float x,y;x=2.3;y=4.5;(int)(x+y)(int)x+y说明说明强制转换得到的是所需类型的中
23、间变量,强制转换得到的是所需类型的中间变量,原变量或表达式的类型不变。原变量或表达式的类型不变。/6 (int)/6.5 (double)28#include stdio.hint main()int x,y;float ave;x=12;y=25;ave=(x+y)/2;printf(ave=%fn,ave);return 0;运行结果:运行结果:ave=18.000000其中表达式其中表达式(x+y)/2按按照照整数除法整数除法的规则进的规则进行,结果截去了小数行,结果截去了小数部分的值。部分的值。例例3.4自动转换效果举例。自动转换效果举例。29在程序中加入强制类型转换运算符在程序中加入
24、强制类型转换运算符#include stdio.hint main()int x,y;float ave;x=12;y=25;ave=(float)(x+y)/2;printf(ave=%fn,ave);return 0;运行结果:运行结果:ave=18.500000其中表达式其中表达式(float)(x+y)/2将将(x+y)强制转换为强制转换为float类型,类型,再再按照按照混合除法混合除法运算的运算的规则进行,结果保留了规则进行,结果保留了小数部分的值。小数部分的值。例例3.5使用强制类型转换示例。使用强制类型转换示例。30思考:以下程序的运行结果。思考:以下程序的运行结果。#incl
25、ude stdio.hint main()double sum;sum=1+1/2+1/3+1/4+1/5;printf(sum=%fn,sum);return 0;运行结果:运行结果:sum=1.00000031运用强制类型转换,程序改为:运用强制类型转换,程序改为:#include stdio.hint main()double sum;sum=1+1/(double)2+1/(double)3+1/(double)4+1/(double)5;printf(sum=%fn,sum);return 0;运行结果:运行结果:sum=2.283333 323.5 使用数学库函数使用数学库函数AN
26、CI C规定,所有函数在使用之前都必须被声明。规定,所有函数在使用之前都必须被声明。该函数已编写好并已编译。在链接时,与用户写的该函数已编写好并已编译。在链接时,与用户写的程序连接在一起形成可执行的程序。程序连接在一起形成可执行的程序。库函数库函数 标准标准C函数按照不同的类别,将声明信息放在不同的头文函数按照不同的类别,将声明信息放在不同的头文件中,例如:件中,例如:标准标准输入输出函数输入输出函数printf()、scanf()等,其声明信息放等,其声明信息放在头文件在头文件“stdio.h”中,需要时使用如下文件包含命令:中,需要时使用如下文件包含命令:#include stdio.h用
27、来完成一些常用数学计算的用来完成一些常用数学计算的标准数学函数标准数学函数,如,如sqrt()、sin()等,其声明信息放在头文件等,其声明信息放在头文件“math.h”中,需要时使用中,需要时使用如下文件包含命令:如下文件包含命令:#include math.h33调用函数通常是按如下顺序书写的:调用函数通常是按如下顺序书写的:函数名函数名(参数或用逗号分隔的参数列表参数或用逗号分隔的参数列表)例如,例如,计算计算x的平方根:的平方根:sqrt(x),计算计算ex的函数:的函数:exp(x),计算计算xy的函数:的函数:pow(x,y),计算计算|x|的函数:的函数:fabs(x),计算弧度
28、值计算弧度值x的三角函数:的三角函数:sin(x)、cos(x)、tan(x)等等34举例举例数学表达式数学表达式C语言表达式语言表达式注意注意1、使用数学表达式时一定要符合、使用数学表达式时一定要符合C语言表达式的书写规范。语言表达式的书写规范。2、数学库函数中、数学库函数中没有提供余切函数没有提供余切函数,可以利用正弦函数和余弦函数,可以利用正弦函数和余弦函数进行计算。假设要计算的角度进行计算。假设要计算的角度x是以角度为单位的,还需要将它转换是以角度为单位的,还需要将它转换为为弧度弧度。x的余切计算公式:的余切计算公式:sin(x*3.14/180)/cos(x*3.14/180)或者利
29、用正切函数或者利用正切函数 1/tan(x*3.14/180)(x+2)*exp(2*x)(-b+sqrt(b*b-4*a*c)/(2*a)money*pow(1+rate),year)353.6 顺序结构程序设计顺序结构程序设计3.6.1 C语句概述语句概述3.6.2 简单语句简单语句3.6.3 顺序结构程序设计顺序结构程序设计36C语句语句控制语句控制语句函数调用函数调用语句语句由一次函数调用加由一次函数调用加一个分号构成一个一个分号构成一个语句。语句。表达式语句表达式语句空语句空语句?1、出现在函数体的、出现在函数体的执行部分。执行部分。2、作用是向计算机、作用是向计算机系统发出系统发出
30、操作操作指令。指令。复合语句复合语句if()else for()while()do while()continuebreakswitchgotoreturnif (xy)z=x;else z=y;printf(“Hello!”);由表达式加一个分由表达式加一个分号构成一个语句。号构成一个语句。a=3;由由 将一些语句将一些语句括起来。括起来。t=a;a=b;b=t;?3.6.1 C3.6.1 C语句概述语句概述简单语句简单语句373.6.2 3.6.2 简单语句简单语句简单语句主要包括表达式语句、函数调用语句等。简单语句主要包括表达式语句、函数调用语句等。表达式语句表达式语句表达式;表达式;例
31、如,例如,n+;x1=(-b+sqrt(b*b-4*a*c)/(2*a);x2=(-b-sqrt(b*b-4*a*c)/(2*a);z =x+a%3*(int)(x+y)%2/4;w =(float)(a+b)/2+(int)x%(int)y;p =money*pow(1+rate),year);38函数调用语句函数调用语句 函数调用;函数调用;例如,例如,printf(Hello!);printf(sum=%fn,sum);scanf(%d%d,&a,&b);putchar(ch1);两者结合构成的赋值语句两者结合构成的赋值语句ch1=getchar();393.6.3 3.6.3 顺序结构
32、程序设计顺序结构程序设计通常程序编写的步骤是:通常程序编写的步骤是:1.分析实际问题分析实际问题2.写出算法、画出流程图写出算法、画出流程图3.根据流程图写出相应的根据流程图写出相应的C语句程序语句程序变量变量声明声明输入输入已知变量值已知变量值计算或计算或处理处理操作操作输出输出结果结果 在顺序结构程序中,各语句(或命令)是按照位置在顺序结构程序中,各语句(或命令)是按照位置的的先后次序,顺序执行先后次序,顺序执行的,且每条语句都会被执行到。的,且每条语句都会被执行到。40编写程序,实现两个变量值的交换功能。编写程序,实现两个变量值的交换功能。例例3.1借助于第三变借助于第三变量量#incl
33、ude stdio.hint main()float a,b,t;printf(请输入请输入a,b的初始值的初始值:);scanf(%f%f,&a,&b);printf(交换之前交换之前a,b的值的值n);printf(a=%ftb=%fn,a,b);t=a;a=b;b=t;printf(交换之后交换之后a,b的值的值n);printf(a=%ftb=%fn,a,b);return 0;运行情况:运行情况:请输入请输入a,b的初始值的初始值:10 25交换之前交换之前a,b的值的值a=10.000000 b=25.000000交换之后交换之后a,b的值的值a=25.000000 b=10.00
34、000041编写程序,实现从键盘输入三角形的三边长,编写程序,实现从键盘输入三角形的三边长,求三角形面积的功能。求三角形面积的功能。例例3.2#include stdio.h#include math.hint main()double a,b,c,s,area;printf(请输入三角形的三边长值请输入三角形的三边长值:);scanf(%lf%lf%lf,&a,&b,&c);printf(输入的三角形三边长值输入的三角形三边长值);printf(a=%.2f b=%.2f c=%.2fn,a,b,c);s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c);p
35、rintf(三角形面积值三角形面积值n);printf(area=%.2fn,area);return 0;请输入三角形的三边长值请输入三角形的三边长值:3 4 5输入的三角形三边长值输入的三角形三边长值a=3.00 b=4.00 c=5.00三角形面积值三角形面积值area=6.00分析分析a,b,c:表示三角形的三边。表示三角形的三边。s:中间变量。中间变量。s=(a+b+c)/2area:三角形面积。三角形面积。以上变量均为实型。以上变量均为实型。输入输入a,b,c输出输出sp(a+b+c)/2ssqrt(p*(p-a)*(p-b)*(p-c)若输入若输入3 4 8-2 -3 9运行情况
36、:运行情况:?42编写程序,实现从键盘输入一个大写字母,输出编写程序,实现从键盘输入一个大写字母,输出对应的小写字母的功能。对应的小写字母的功能。例例3.3#include stdio.hint main()char ch1,ch2;printf(请输入一个大写字母:请输入一个大写字母:n);ch1=getchar();printf(转换前:转换前:%c%dn,ch1,ch1);ch2=ch1+32;printf(转换后:转换后:%c%dn,ch2,ch2);return 0;运行结果:运行结果:请输入一个大写字母:请输入一个大写字母:D转换前:转换前:D 68转换后:转换后:d 10043编
37、写程序,分行输出一个编写程序,分行输出一个3位整数的每一数字,先输出位整数的每一数字,先输出百位数字,再输出十位数字,最后一行输出各位数字。百位数字,再输出十位数字,最后一行输出各位数字。数字分离问题。可以采用整数的除法、求余运算实现数字分离。数字分离问题。可以采用整数的除法、求余运算实现数字分离。如:如:123/100=1,123%100/10=2,123%10=3。例例3.4分析分析#include stdio.hint main()int x,a,b,c;printf(请输入一个请输入一个3位整数位整数n);scanf(%d,&x);printf(您输入的您输入的3位整数是:位整数是:%dn,x);a=x/100;b=x%100/10;c=x%10;printf(分行输出结果是:分行输出结果是:n);printf(%dn,a);printf(%dn,b);printf(%dn,c);return 0;运行结果:运行结果:请输入一个请输入一个3位整数位整数836您输入的您输入的3位整数是:位整数是:836分行输出结果是:分行输出结果是:8364445运算符运算符含义含义&按位与按位与|按位或按位或按位异或按位异或按位取反按位取反右移,符号扩展右移,符号扩展46
限制150内