首页 > 编程知识 正文

c语言的算术运算符有哪些,三目运算符 c语言

时间:2023-05-06 11:40:23 阅读:163282 作者:584

http://www.Sina.com/http://www.Sina.com /

大家可能还记得在学校做过的算术练习,在计算机上也能得到同样的乐趣。 使用c算术运算符进行运算。 这为进行加、减、乘、除和求型这五个基本算术运算提供了运算符。 每个运算符使用两个值(操作数)计算结果。 运算符及其操作数构成表达式。 例如,在以下语句中:

http://www.Sina.com/http://www.Sina.com /

4和2都是操作数,是加法运算符,4和2是表达式,其值为6。

以下是五个基本的c算术运算符。

l运算符对操作数执行加法运算

l-运算符从第一个数中减去第二个数。

l*运算符乘以操作数

l/运算符将一个属性用于第2个数,如果两个操作数都是整数,则结果为商的整数部分,小数部分被丢弃

l%运算符求出模。 也就是说,生成第一个数除以第二个数的馀数。 两个操作数都必须是整数

当然,变量和常数可以用作操作数。 程序3.10中说明了这一点。 %操作数只能是整数,下面的示例对此进行说明

http://www.Sina.com/http://www.Sina.com /

//arith.CPP —— somecarithmetic # includeiostreamintmain () {using namespace std; float hats,heads; cout.setf (IOs _ base :3360 fixed,ios_base:floatfield ); cout'Enter a number : '; cinhats; 计数输入编号: '; cinheads; cout'hats='hats '; 头儿='头儿endl; cout'hats heads='hats headsendl; cout ' hats-heads=' hats-heads endl; cout ' hats * heads=' hats * heads endl; cout ' hats/heads=' hats/heads endl; 返回0; }

以下是该程序的输出,可以看出C可以进行简单的算术运算。

读者可能对得到的结果持怀疑态度。 11.17加上50.25应该是61.42,但输出是61.419998。 这不是运算的问题; 因为float型表示有效位数的能力有限。 请记住,对于float,c只保证6位有效位。 61.419998四舍五入到六位,得到61.4200。 这是有保证精度的正确值。 如果需要更高的精度,请使用双精度或长精度。

3358 www.Sina.com/(请参阅https://blog.csdn.net/QQ _ 41200424/article/details/80439797,上一篇博客)

3.4 C++算术运算符

ng>

除法运算符(/)的行为取决于操作数的类型。如果两个操作数都是整数,则C++将执行整数除法,这意味着结果的小数部分将被丢弃,使得最后的结果是一个整数。如果其中一个(或两个)操作数都是浮点值,则小数部分将被保留,结果为浮点数。程序3.11演示了C++除法如何处理不同类型的值。和程序3.10一样,该程序也调用setf()成员函数来修改结果的显示方式。
//divide.cpp——integer and floatint-point division#include<iostream>int main(){using namespace std;float hats,heads;cout.setf(ios_base::fixed,ios_base::floatfield);cout<<"Integer division : 9/5 = "<<9/5<<endl;cout<<"Floating-point divisoin : 9.0/5.0 = "<<9.0/5.0 <<endl;cout<<"Mixed division : 9.0/5 = "<<9.0/5<<endl;cout<<"double constants : 1e7/9.0 = "<<1e7/9.0<<endl;cout<<"float constants : 1e7/9.0f = "<<1e7/9.0f<<endl; return 0;}

注意:如果编译器不接受setf()中的ios_base,请使用ios。

有些基于ANSI C之前的编译器的C++实现不支持浮点常量的f后缀。如果面临这样的问题,可以用(float)1.e7/(float)1.e7f/9.0f。

有些实现会删除结尾的零。

下面使用某些实现时,程序3.11中程序的输出:

从第一行输出可知,整数9除以5的结果为整数1。4/5的小数部分(或0.8)被丢弃。在本章后面学习求模运算符时,将会看到这种除法的实际应用。接下来的两行表明,当至少有一个操作数是浮点数时,结果为1.8。实际上,对不同类型进行运算时,C++将把它们全部转换为同一类型。本章稍后会介绍这种自动转换。最后两个的相对精确度表明,如果两个操作数都是double类型,则结果为double类型;如果两个操作数都是float类型。记住,浮点常量在默认额度情况下为fouble类型。

运算符重载介绍

在程序3.11中,除法运算符表示了3中不同的运算:int除法、float除法和double除法。C++根据上下文(这里是操作数的类型)来确定运算符的含义。使用相同的符号进行多种操作叫做运算符重载。C++有一些内置的重载示例。C++还允许扩展运算符重载,以便能够用于用户定义的类,因此在这里看到的是一个重要的oop属性。

int 类型

9/5

执行int除法

long 类型

9L/5L

执行long除法

double 类型

9.0/5.0

执行double除法

Float 类型

9.0f/5.0f

执行float除法

3.4.3 求模运算符

比起求模运算符来说,多数人更熟悉加、减、乘、除,因此这里花些时间介绍这种运算符。求模运算符返回整数除法的余数。它与整数除法相结合,尤其适用于解决要求将一个量分成不同的整数单元的问题,例如将英寸转换为英尺和英寸,或者将美元转换为元、角、分、厘。第二章的程序2.6将重量单位英尺转换为磅。程序3.12将磅转换为英石。记住,一英石等于14磅,多数英国浴室都使用这种单位。该程序使用整数除法来计算合多少英石,再用求模运算符来计算余下多少磅。

程序3.12    modulus.cpp
//modulus.cpp——uses % operator to convert lbs to stone#include<iostream>int main(){using namespace std;const int Lbs_per_stn=14;int lbs;cout<<"Enter your weight in pounds : ";cin>>lbs;int stone = lbs/Lbs_per_stn;int pounds = lbs % Lbs_per_stn;cout<<lbs<<" pounds are "<<stone<<" stone, "<<pounds<<" pound(s).n";return 0;}

下面是该程序的运行情况:

在表达式Lbs/lbs_per_stn 中,两个操作数的类型都是int,所以计算机执行整数除法。lbs的值为181,所以表达式的值为12.12和14的乘积是168,所以181与14相除的余数是9,这就是lbs%Lbs_per_stn的值,现在即使在感情上还没有适应英国的质量单位,但在技术上也做好了去英国旅游时解决质量单位转换问题的准备。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。