1c语言入门2常量、变量和表达式5表达式 (1)

合集下载

C语言从入门到精通(吐血分享)

C语言从入门到精通(吐血分享)

六大表达式一、算术表达式(数学表达式)(1)运算符:数学:{} [] () + - * / + -C:()、+/-、* / %、+/-正负(2)单目、双目运算符单目:一个操作数 +5 -9双目:两个操作数 5+6 7*8(3)%:<1>双目运算符<2>操作数:两个数都是整型资料1%2<3>奇数: x%2!=0偶数: x%2==0整除: %(4)在算术运算中,如果运算符两端的类型都是整型数据,那么结果是整型资料1/2 0 5/3 1 8/9 0 9/8 1在算术运算中,如果运算符两端的类型不一致,向空间大的一方转化. 1/2.0 1.0/2.0 0.5 1.0/5 1.0/5.0 0.22 4(5)优先级:(6)结合性:(7)使用多层括号,一律使用小括号(8)强制性类型转化格式:(类型名)表达式注:1)类型名括号不能省2)不存在四舍五入2.赋值表达式(1)格式变量名=表达式(2)变数的实质:存储单元(3) =:赋值号==:等号优先级:只比逗号高结合性:自右向左(4)表达式:常量、变数、六大表达式(5)在赋值表达式中,赋值号的左端只能为变量名5+8=a b=a(6) int x=2,y=3;x=y:将变量y所代表的单元中的值取出来赋值给变量x所代表的单元中x=x+1:将变量x所代表的单元中的值取出来+1赋值给变量x代表的单元中x=x:左x: 代表x所标识的单元右x:将变量x所代表的单元中的值取出来单元=值(7)变量中的值在不断进行更新x=2x=3x=99(8)复合赋值表达式(算术和赋值) 1)运算符:*= /= %= += -=2)优先级:与”=“同级3)结合性:自右向左4)复合赋值有隐含小括号功能3.关系表达式(1)逻辑值平时 C 5678 -2真非0 1假 0 0(2)运算符> >= < <= == != (3)优先级> >= < <= == != (4)结合性自左向右(5)结果:逻辑值5<6 7>94.逻辑表达式(1)运算符!:(非补集)&&:(与交集)||:(或者并集)(2)!:单目运算&& ||:双目(3)优先级高到低:! && ||(4)结合性!:自右向左&& ||:自左向右(5)使用!0 1 !非0 0非0&&非0 1 1||1 1非0&&0 0 1||0 10&&非0 0 0||1 10&&0 0 0||0 0(6)结果:逻辑值(1,0)(7)数学表示方式|x|<=9 -9<=x<=9 x>=-9&&x<=9|x|>=9 x>=9或x<=-9 x>=9||x<=-9(8)断路问题<1> 在逻辑&&运算中,如果表达式1已经为逻辑假,表达式2不用执行,该表达式值为逻辑假<2>在逻辑||运算中,如果表达式1已经为逻辑真,表达式2不用执行,该表达式值为逻辑真5.条件表达式格式:表达式1?表达式2:表达式3(1)三目运算(2)运算过程:表达式1为真,执行表达式2表达式1为假,执行表达式36.逗号表达式(1)格式:表达式1,表达式2,表达式3,表达式4,……,表达式n (2)优先级:所有运算符中优先级最低(3)结合性:自左向右int a=8;a+=3,a=5,a+3; ?a 表达式的值?附:<1>++ 、--1>功能++:+1 自动赋值--: -1 自动赋值2>单目运算3>操作数可以放在运算符的右边也可以放在运算符的左边 i++ ++i i-- --i4>操作数可以为整型、实型的变量 2++ 2=2+1 错i++ i=i+1 ++i i=i+1i-- i=i-1 --i i=i-15>表达式值和变数值int i;表达式值变数值i=5 i++ 5 6i=5 ++i 6 6i=5 i-- 5 4i=5 --i 4 4只要给出式子的整体(i++,--i)则使用的是表达式的值;如果给出变量名,使用的是变量值int i=5;j=40/i++; j=40/6 66>-i++:-(i++) j=-i++; j=-5 i=6<2>所有运算符的优先级(六个表达式)高=》低() ++/-- !算术表达式关系表达式逻辑表达式条件表达式赋值表达式逗号表达式。

C语言入门教程:C语言中的常量

C语言入门教程:C语言中的常量
学习完变量后,本章《C语言入门教程》让我们开始学习常量,所谓常量顾名思义就是不可改变量,是一个恒定如常的数。常量和变量有着很多共同点和不同,我们学习常量时可以对比变量一起学习。
二、C语言入门教程常量
常量的意思就是不可改变的量,是一个常数。同变量一样,常量也分为整型常量、浮点型常量、字符型常量,还有字符串常量、转义字符常量和地址常量。
4. Turbo C默认格式输出浮点数时, 最多只保留小数点后六位
C语言入门教程 [NextPage]
(三)、字符型常量
字符型常量所表示的值是字符型变量所能包含的值。我们可以用ASCII表达式来表示一个字符型常量,或者用单引号内加反斜杠表示转义字符。
'A', '\x2f', '\013';
&是取地址符,作用是取出变量(或者函数)的地址。在后面的输入语句和指针里还会说明。
这一节所讲到的变量和常量知识可以说是在一切程序中都要用到,特别是变量的声明和命名规则。
以上内容是由考试百科的小编为您提供,后续内容请参看《C语言入门教程:运算符》,我们为您准备了更将详尽的计算机等级考试资讯。
(一)、整型常量
整型常量可以是长整型、短整型、有符号型、无符号型。在Tubbo C 2.0里有符号整型常量的范围从-32768到32767,无符号整型的为0到65535;有符号长整型的范围为-2147483648到2147483647。无符号长整型的范围为0到4294967295。短整型同字符型。
其中:\x表示后面的字符是十六进制数,\0表示后面的字符是八进制数。
注意:在Turbo C 2.0中,字符型常量表示数的范围是-128到127,除非你把它声明为unsigned,这样就是0到255。

C语言详解-表达式和语句

C语言详解-表达式和语句

C语⾔详解-表达式和语句1. 什么是表达式?C语⾔中的表达式⼀种有值的语法结构,它由运算符将变量、常量、函数调⽤返回值结合⽽成。

1.1 变量变量名本⾝是⼀个表达式,表达式的值是变量当前的值。

复杂的表达式由[], ->, ., 和单⽬运算符*构成。

1.2 常量常量名本⾝是⼀个表达式,字⾯常量也是表达式。

对于这两者,表达式的值是常量当前的值。

1.3 函数调⽤对于返回值不为void的函数,对它的正确调⽤也是表达式。

表达式的值为函数的返回值。

1.4 操作符运算符⽤于连接表达式中的值。

以下是C语⾔中的运算符,运算符的优先级,及运算符的结合顺序OrderCategory Operator Operation Associativity1Highest precedence( )[ ]→: :.Function call L → RLeft to Right2Unary!~+-++- -&*Size of Logical negation (NOT)Bitwise 1’s complementUnary plusUnary minusPre or post incrementPre or post decrementAddressIndirectionSize of operant in bytesR → LRight -> Left3Member Access.*→*DereferenceDereferenceL → R4Multiplication*/%MultiplyDivideModulusL → R5Additive+-Binary PlusBinary MinusL → R6Shift<<>>Shift LeftShift RightL → R7Relational<<=>>=Less thanLess than or equal toGreater thanGreater than or equal toL → R8Equality==!=Equal toNot Equal toL → R9Bitwise AAND&Bitwise AND L → R 10Bitwise XOR^Bitwise XOR L → R 11Bitwise OR|Bitwise OR L → R 12Logical AND&&Logical AND L → R 14Conditional? :Ternary Operator R → L15Assignment=*=%=/=+=-=&=^=|=<<=>>=AssignmentAssign productAssign reminderAssign quotientAssign sumAssign differenceAssign bitwise ANDAssign bitwise XORAssign bitwise ORAssign left shiftAssign right shiftR → L>>=Assign right shift16Comma,Evaluate L → R1.5 实例/* 变量常量表达式 */asum10.5PI/* 算术表达式 */a + ba -b + ca *b + 'A'a /b -c + 10i++ + i++ + ++i/* 赋值表达式 */a = ba *=b += 20a =b =c = 10a = (b=4) / (c=2)/* 逗号表达式 */1+2, 3+4(10, a*5), a+10/* 关系表达式 */x == yx <= yx != y/* 逻辑表达式 */10 && 200 || 1(a>b) && (!0)/* 复合表达式 */x = ( y = (a + b), z=10)/* 表达式的应⽤ */if( !100 ) //!100为逻辑表达式printf("expression show!");for(int i=10; i<10; i++)//for包含3个表达式,分别为i=10 i<10 i++printf("expression show!");while( 1 ) //1也是⼀个表达式{printf("death loop!");}2. 语句语句指的是当程序运⾏时执⾏某个动作的语法结构。

C语言中常量变量和表达式

C语言中常量变量和表达式
<
字符常量
❖定义:用单引号括起来的单个普通字符或转义字符. ❖字符常量的值:该字符的ASCII码值
转义字符及其含义:
转义字符
\n
\v
\r
<
\a \‘
含义 换行 垂直制表 回车 响铃 单引号
转义字符 \t \b \f \\ \“
\ddd 3位8进制数代表的字符 \xhh
含义 水平制表
退格 换页 反斜线 双引号 2位16进制数代表的字符
2字节
…...
分c配ocu指ot定<u<t字<“节<“d的a内dtaa存=ta单”=元”<<<d<adtaa;ta;
< > }}
内存
随机数
整型变量
❖占字节数随机器不同而不同,一般占一个机器字 ❖short≤int≤long ❖可用sizeof(类型标识符)测量
实型变量
❖float:占4字节,提供7位有效数字 ❖double:占8字节,提供15~16位有效数字
地址
char ch=‘A’;
sfl地yo变可ma址量tb执ino定gb行l ‘p义语osiii句ntnnatttte-ixxn3n==tf1y’u,=ynz=ic=n1t1i,ofz;un=2n1字mc;t节iaoinn
ma
编译da程dta序a=t根a(a=据+(a变b+)量*b1定)*.义21;.为2其; c
-2147483648~2147483647
16
0~65535
无 unsigned short
16
0~65535
unsigned long来自320~4294967295
实有 型有

《C语言程序设计》第2章2 常量和变量ppt课件

《C语言程序设计》第2章2 常量和变量ppt课件

上机作业
• 4、两个两位数,现重新组合成一个新的四位数,第一个数的十位放 在新四位数的个位,第二个数的个位放在新四位数的十位,第一个数 的个位放在新四位数的百位,第二个数的十位放在新四位数的千位。
• 例:80和20 重新组合后为 2008 • 86和57 重新组合后为 5678 • #include <stdio.h> • main() • { int m=86,n=57,a,b,c,d,sum; • a=m/10; • b=n%10; • c=m%10; • d=n/10; • sum=a+b*10+c*100+d*1000; • printf("sum=%d\n",sum); •}
上机作业
• 3、求一个四位数各个位上的数字之和。 • 例:四位数为 1234 各个位上数字之和为 10 • #include <stdio.h> • main() • { int m=1234,a,b,c,d,sum; • a=m%10; • b=m/10%10; • c=m/100%10; • d=m/1000; • sum=a+b+c+d; • printf("sum=%d\n",sum); •}
[+7]原= 0 取反= 1 加一= 1
[-7]补= 1
数值位 0111 (原码) 111111111111000 111111111111001 111111111111001
(反码) (补码)
<
实型 (课本13页)
• 表示形式:
小数形式:(必须有小数点) 如 0.123 , .123 , 123.0 , 0.0 , 123.
data=(a+b)*1.2;

C语言常量和变量课件

C语言常量和变量课件

变量的定义与 使用
变量— 先定义,后使 用
先赋值,后引用
int a,b; a=2; b=a*a; printf(“%d”,b);
变量的赋值
一.赋初值(初始化):在定 义变量时对它赋值
int a=5,b=2;
二.赋值表达式:
int a,b; a=5; b=2;
三.输入函数:
scanf(“%d%d”,&a,&b);
横向跳格(8或4个)!根据前面为参考
常 用 的 转 回车(回到本行第一个位置)
退格
义 字 符 常 换页(没有变化)
量 空字符
反斜杠



单击此处输入你的正文,文字是您思想的提炼,为了最终演示发布
单引号 双引号 的 良 好 效 果 , 请 尽 量 言 简 意 赅 的 阐 述 观 点 , 以 便 观 者 可 以 准 确 理 解 您所传达的信息。
实型变量
2 实型变量 -- 单精度浮点型 4字节存储 float a, b, c; -- 双精度浮点型 double x, y, z8;字节存储
实型数据的输入和输出
printf( ) float、double使用相同的格式控制说明
%f:以小数形式输出浮点数,保留六位小数 %e:以指数形式输出
例:实型数据的输出
printf("%c",'a');
printf("%d",'a');
//打印出 'a'的 ASCLL码值 97
1.3.2、 转义字符
使用 ’ \ ’
1.3.3字符串常量
字符串常量,注意字符串常量和字符型常量是不一样的。
字符串常量与字符常量不同的地方是,字符串常量是用""把字符串括起来,所以'a'和"a" 是不一样的,而且系统会在字符串常量的末尾自动加一个字符串结束标志('\0')。

编程中变量和常量的运算与表达式

编程中变量和常量的运算与表达式

编程中变量和常量的运算与表达式在计算机编程中,变量和常量是非常重要的概念。

它们用于存储和表示数据,在程序的执行过程中起着关键的作用。

本文将探讨变量和常量的运算与表达式,以及它们在编程中的应用。

一、变量和常量的定义和赋值在编程中,变量是一种用于存储数据的容器。

它们可以存储各种类型的数据,如整数、浮点数、字符串等。

变量的值可以在程序执行过程中发生变化,因此称之为“变量”。

常量则是一种固定不变的值。

它们在程序执行过程中不会发生变化,因此称之为“常量”。

常量一般用于表示固定的数值、字符或者字符串。

在编程中,我们需要为变量和常量赋值。

赋值是将一个值存储到变量或常量中的过程。

例如,我们可以将整数值10赋给一个名为“num”的变量,或者将字符串“Hello World”赋给一个名为“message”的常量。

二、变量和常量的运算在编程中,我们可以对变量和常量进行各种运算。

常见的运算包括数学运算、逻辑运算和比较运算。

1. 数学运算数学运算是对变量和常量进行基本的数学操作,如加法、减法、乘法和除法等。

例如,我们可以将两个整数相加,并将结果存储到一个变量中。

这样的运算可以用于计算、处理数据等。

2. 逻辑运算逻辑运算是对变量和常量进行逻辑操作,如与、或、非等。

逻辑运算常用于条件判断和控制流程。

例如,我们可以使用逻辑运算符“与”(&&)来判断两个条件是否同时满足。

3. 比较运算比较运算是对变量和常量进行比较操作,如大于、小于、等于等。

比较运算常用于条件判断和排序等场景。

例如,我们可以使用比较运算符“大于”(>)来比较两个数的大小。

三、表达式在编程中,表达式是由变量、常量和运算符组成的组合。

它们可以用于计算和表示复杂的逻辑和数学关系。

表达式可以包含多个变量和常量,并通过运算符进行运算。

例如,我们可以使用表达式“num1 + num2”来表示两个变量的相加操作。

这样的表达式可以用于计算两个数的和,并将结果存储到一个变量中。

1C语言入门_2常量、变量和表达式_3变量

1C语言入门_2常量、变量和表达式_3变量

第 2 章常量、变量和表达式3. 变量变量(Variable)是编程语言最重要的概念之一,变量是计算机存储器中的一块命名的空间,可以在里面存储一个值(Value),存储的值是可以随时变的,比如这次存个字符'a'下次存个字符'b',正因为变量的值可以随时变所以才叫变量。

常量有不同的类型,因此变量也有不同的类型,变量的类型也决定了它所占的存储空间的大小。

例如以下四个语句定义了四个变量fred、bob、jimmy和tom,它们的类型分别是字符型、整型、浮点型:char fred;int bob;float jimmy;double tom;声明和定义C语言中的声明(Declaration)有变量声明、函数声明和类型声明三种。

如果一个变量或函数的声明要求编译器为它分配存储空间,那么也可以称为定义(Definition),因此定义是声明的一种。

在接下来几章的示例代码中变量声明都是要分配存储空间的,因而都是定义,等学到第 2 节“定义和声明”我们会看到哪些变量声明不分配存储空间因而不是定义。

在下一章我们会看到函数的定义和声明也是这样区分的,分配存储空间的函数声明可以称为函数定义。

从第 7 章结构体开始我们会看到类型声明,声明一个类型是不分配存储空间的,但似乎叫“类型定义”听起来也不错,所以在本书中“类型定义”和“类型声明”表示相同的含义。

声明和语句类似,也是以;号结尾的,但是在语法上声明和语句是有区别的,语句只能出现在{}括号中,而声明既可以出现在{}中也可以出现在所有{}之外。

浮点型有三种,float是单精度浮点型,double是双精度浮点型,long double 是精度更高的浮点型。

它们之间的区别和转换规则将在第 15 章数据类型详解详细介绍,在随后的几章中我们只使用double类型,上一节介绍的常量3.14应该看作double类型的常量,printf的%f也应该看作double型的转换说明。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 2 章常量、变量和表达式
5. 表达式
常量和变量都可以参与加减乘除运算,例如1+1、hour-1、hour * 60 + minute、minute/60等。

这里的+ - * /称为运算符(Operator),而参与运算的常量和变量称为操作数(Operand),上面四个由运算符和操作数所组成的算式称为表达式(Expression)。

和数学上规定的一样,hour * 60 + minute这个表达式应该先算乘再算加,也就是说运算符是有优先级(Precedence)的,*和/是同一优先级,+和-是同一优先级,*和/的优先级高于+和-。

对于同一优先级的运算从左到右计算,如果不希望按默认的优先级计算则要加()括号(Parenthesis)。

例如(3+4)*5/6应先算3+4,再算*5,再算/6。

前面讲过打印语句和赋值语句,现在我们定义:在任意表达式后面加个;号也是一种语句,称为表达式语句。

例如:
hour * 60 + minute;
这是个合法的语句,但这个语句在程序中起不到任何作用,把hour的值和minute 的值取出来加乘,得到的计算结果却没有保存,白算了一通。

再比如:
int total_minute;
total_minute = hour * 60 + minute;
这个语句就很有意义,把计算结果保存在另一个变量total_minute里。

事实上等号也是一种运算符,称为赋值运算符,赋值语句就是一种表达式语句,等号的优先级比+和*都低,所以先算出等号右边的结果然后才做赋值操作,整个表达式total_minute = hour * 60 + minute加个;号构成一个语句。

任何表达式都有值和类型两个基本属性。

hour * 60 + minute的值是由三个int 型的操作数计算出来的,所以这个表达式的类型也是int型。

同理,表达式total_minute = hour * 60 + minute的类型也是int,它的值是多少呢?C语言规定等号运算符的计算结果就是等号左边被赋予的那个值,所以这个表达式的值和hour * 60 + minute的值相同,也和total_minute的值相同。

等号运算符还有一个和+ - * /不同的特性,如果一个表达式中出现多个等号,不是从左到右计算而是从右到左计算,例如:
int total_minute, total;
total = total_minute = hour * 60 + minute;
计算顺序是先算hour * 60 + minute得到一个结果,然后算右边的等号,就是把hour * 60 + minute的结果赋给变量total_minute,这个结果同时也是整个表达式total_minute = hour * 60 + minute的值,再算左边的等号,即把这个值再赋给变量total。

同样优先级的运算符是从左到右计算还是从右到左计算称为运算符的结合性(Associativity)。

+ - * /是左结合的,等号是右结合的。

现在我们总结一下到目前为止学过的语法规则:
表达式→标识符
表达式→常量
表达式→字符串字面值
表达式→ (表达式)
表达式→表达式 + 表达式
表达式→表达式 - 表达式
表达式→表达式 * 表达式
表达式→表达式 / 表达式
表达式→表达式 = 表达式
语句→表达式;
语句→ printf(表达式, 表达式, 表达式, ...);
变量声明→类型标识符 = Initializer, 标识符 = Initializer, ...;
(= Initializer的部分可以不写)
注意,本书所列的语法规则都是简化过的,是不准确的,目的是为了便于初学者理解,比如上面所列的语法规则并没有描述运算符的优先级和结合性。

完整的C语法规则请参考[C99]的Annex A。

表达式可以是单个的常量或变量,也可以是根据以上规则组合而成的更复杂的表达式。

以前我们用printf打印常量或变量的值,现在可以用printf打印更复杂的表达式的值,例如:
printf("%d:%d is %d minutes after 00:00\n",
hour, minute, hour * 60 + minute);
编译器在翻译这条语句时,首先根据上述语法规则把这个语句解析成下图所示的语法树,然后再根据语法树生成相应的指令。

语法树的末端的是一个个Token,每一步展开利用一条语法规则。

图 2.2. 语法树
根据这些语法规则进一步组合可以写出更复杂的语句,比如在一条语句中完成计算、赋值和打印功能:
printf("%d:%d is %d minutes after 00:00\n",
hour, minute, total_minute = hour * 60 +
minute);
理解组合(Composition)规则是理解语法规则的关键所在,正因为可以根据语法规则任意组合,我们才可以用简单的常量、变量、表达式、语句搭建出任意复杂的程序,以后我们学习新的语法规则时会进一步体会到这一点。

从上面的例子可以看出,表达式不宜过度组合,否则会给阅读和调试带来困难。

根据语法规则组合出来的表达式在语义上并不总是正确的,例如:
minute + 1 = hour;
等号左边的表达式要求表示一个存储位置而不是一个值,这是等号运算符和+ - * /运算符的又一个显著不同。

有的表达式既可以表示一个存储位置也可以表示一个值,而有的表达式只能表示值,不能表示存储位置,例如minute + 1这个表达式就不能表示存储位置,放在等号左边是语义错误。

表达式所表示的存储位置称为左值(lvalue)(允许放在等号左边),而以前我们所说的表达式的值也称为右值(rvalue)(只能放在等号右边)。

上面的话换一种说法就是:有的表达式既可以做左值也可以做右值,而有的表达式只能做右值。

目前我们学过的表达式中只有变量可以做左值,可以做左值的表达式还有几种,以后会讲到。

我们看一个有意思的例子,如果定义三个变量int a, b, c;,表达式a = b = c 是合法的,先求b = c的值,再把这个值赋给a,而表达式(a = b) = c是不合法的,先求(a = b)的值没问题,但(a = b)这个表达式不能再做左值了,因此放在= c的等号左边是错的。

关于整数除法运算有一点特殊之处:
hour = 11;
minute = 59;
printf("%d and %d hours\n", hour, minute /
60);
执行结果是11 and 0 hours,也就是说59/60得0,这是因为两个int型操作数相除的表达式仍为int型,只能保存计算结果的整数部分,即使小数部分是0.98也要舍去。

向下取整的运算称为Floor,用数学符号⌊⌋表示;向上取整的运算称为Ceiling,用数学符号⌈⌉表示。

例如:
⌊59/60⌋=0
⌈59/60⌉=1
⌊-59/60⌋=-1
⌈-59/60⌉=0
在C语言中整数除法取的既不是Floor也不是Ceiling,无论操作数是正是负总是把小数部分截掉,在数轴上向零的方向取整(Truncate toward Zero),或者说当操作数为正的时候相当于Floor,当操作符为负的时候相当于Ceiling。

回到先前的例子,要得到更精确的结果可以这样:
printf("%d hours and %d percent of an
hour\n", hour, minute * 100 / 60);
printf("%d and %f hours\n", hour, minute /
60.0);
在第二个printf中,表达式是minute / 60.0,60.0是double型的,/运算符要求左右两边的操作数类型一致,而现在并不一致。

C语言规定了一套隐式类型转换规则,在这里编译器自动把左边的minute也转成double型来计算,整个表达式的值也是double型的,在格式化字符串中应该用%f转换说明与之对应。

本来编程语言作为一种形式语言要求有简单而严格的规则,自动类型转换规则不仅很复杂,而且使C语言的形式看起来也不那么严格了,C语言这么设计是为了书写程序简便而做的折衷,有些事情编译器可以自动做好,程序员就不必每次都写一堆繁琐的转换代码。

然而C语言的类型转换规则非常难掌握,本书的前几章会尽量避免类型转换,到第 3 节“类型转换”再集中解决这个问题。

习题
1、假设变量x和n是两个正整数,我们知道x/n这个表达式的结果要取Floor,例如x是17,n是4,则结果是4。

如果希望结果取Ceiling应该怎么写表达式呢?例如x是17,n是4,则结果是5;x是16,n是4,则结果是4。

相关文档
最新文档