c语言做加减乘除(C语言加减乘除运算)

加减乘除是常见的数学运算,C语言当然支持,不过,C语言中的运算符号与数学中的略有不同,请见下表。

加法

减法

乘法

除法

求余数(取余)

数学

+

×

÷

C语言

+

*

/

%

C语言中的加号、减号与数学中的一样,乘号、除号不同;另外C语言还多了一个求余数的运算符,就是 %。

下面的代码演示了如何在C语言中进行加减乘除运算:

#include <stdio.h> int main() { int a = 12; int b = 100; float c = 8.5; int m = a + b; float n = b * c; double p = a / c; int q = b % a; printf(“m=%d, n=%f, p=%lf, q=%d\n”【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目, m, n, p, q); return 0; }

输出结果:

m=112, n=850.000000, p=1.411765, q=4

你也可以让数字直接参与运算:

#include <stdio.h> int main() { int a = 12; int b = 100; float c = 8.9; int m = a – b; // 变量参与运算 int n = a + 239; // 有变量也有数字 double p = 12.7 * 34.3; // 数字直接参与运算 printf(“m=%d, n=%d, p=%lf\n”, m, n, p); printf(“m*2=%d, 6/3=%d, m*n=%ld\n”, m*2, 6/3,【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目 m*n);return 0; }

输出结果:

m=-88, n=251, p=435.610000

m*2=-176, 6/3=2, m*n=-22088

对除法的说明

C语言中的除法运算有点奇怪,不同类型的除数和被除数会导致不同类型的运算结果:

当除数和被除数都是整数时,运算结果也是整数;如果不能整除,那么就直接丢掉小数部分,只保留整数部分,这跟将小数赋值给整数类型是一个道理。一旦除数和被除数中有一个是小数,那么运算结果也是小数,并且是 double 类型的小数。

请看下面的代码:

#include <stdio.h> int main() { int a = 100; int b = 12; float c = 12.0;【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目double p = a / b; double q = a / c; printf(“p=%lf, q=%lf\n”, p, q); return 0; }

运行结果:

p=8.000000, q=8.333333

a 和 b 都是整数,a / b 的结果也是整数,所以赋值给 p 变量的也是一个整数,这个整数就是 8。

另外需要注意的一点是除数不能为 0,因为任何一个数字除以 0 都没有意义。

然而,编译器对这个错误一般无能为力,很多情况下,编译器在编译阶段根本无法计算出除数的值,不能进行有效预测,“除数为 0”这个错误只能等到程序运行后才能发现,而程序一旦在运行阶段出现任何错误,只能有一个结果,那就是崩【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目溃,并被操作系统终止运行。

请看下面的代码:

#include <stdio.h> int main() { int a, b; scanf(“%d %d”, &a, &b); //从控制台读取数据并分别赋值给a和b printf(“result=%d\n”, a / b); return 0; }

这段代码用到了一个新的函数,就是 scanf。scanf 和 printf 的功能相反,printf 用来输出数据,scanf 用来读取数据。此处,scanf 会从控制台读取两个整数,并分别赋值给 a 和 b。关于 scanf 的具体用法,我们将在《C语言scanf:读取从键盘输入的数据(含输入格式汇总表)》一节中详【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目细讲解,这里大家只要知道它的作用就可以了,不必求甚解。

程序开头定义了两个 int 类型的变量 a 和 b,程序运行后,从控制台读取用户输入的整数,并分别赋值给 a 和 b,这个时候才能知道 a 和 b 的具体值,才能知道除数 b 是不是 0。像这种情况,b 的值在程序运行期间会改变,跟用户输入的数据有关,编译器根本无法预测,所以就没法及时发现“除数为 0”这个错误。

对取余运算的说明

取余,也就是求余数,使用的运算符是 %。C语言中的取余运算只能针对整数,也就是说,% 的两边都必须是整数,不能出现小数,否则编译器会报错。

另外,余数可以是正数也可以是负数,由 % 左边的整数决定:

如果 % 左边是正数【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目,那么余数也是正数;如果 % 左边是负数,那么余数也是负数。

请看下面的例子:

#include <stdio.h> int main() { printf( “100%%12=%d \n100%%-12=%d \n-100%%12=%d \n-100%%-12=%d \n”, 100%12, 100%-12, –100%12, –100%-12 ); return 0; }

运行结果:

100%12=4

100%-12=4

-100%12=-4

-100%-12=-4

在 printf 中,% 是格式控制符的开头,是一个特殊的字符,不能直接输出;要想输出 %,必须在它的前面再加一个 %,这个时候 % 就变成了【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目普通的字符,而不是用来表示格式控制符了。

加减乘除运算的简写

有时候我们希望对一个变量进行某种运算,然后再把运算结果赋值给变量本身,请看下面的例子:

#include <stdio.h> int main() { int a = 12; int b = 10; printf(“a=%d\n”, a); a = a + 8; printf(“a=%d\n”, a); a = a * b; printf(“a=%d\n”, a); return 0; }

输出结果:

a=12

a=20

a=200

a = a + 8

相当于用原来 a 的值(也即12)加上 8,再把运算结果(也即20)赋值给 a,此时 a 的值就变成了【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目 20。

a = a * b

相当于用原来 a 的值(也即20)乘以 b 的值(也即10),再把运算结果(也即200)赋值给 a,此时 a 的值就变成了 200。

以上的操作,可以理解为对变量本身进行某种运算。

在C语言中,对变量本身进行运算可以有简写形式。假设用 # 来表示某种运算符,那么

a = a # b

可以简写为:

a #= b

# 表示 +、-、*、/、% 中的任何一种运算符。

上例中a = a + 8可以简写为a += 8a = a * b可以简写为a *= b

下面的简写形式也是正确的:

int a = 10, b = 20; a += 10; //相当于 a = a + 10; a *= (b-1【我爱线报网】52线报网-专注分享活动首码线报优惠券零投网赚项目0); //相当于 a = a * (b-10); a -= (a+20); //相当于 a = a – (a+20);

注意:a #= b 仅是一种简写形式,不会影响程序的执行效率。

推荐阅读

给力项目线报网会员可免费下载 加入会员
友情提醒: 请尽量登录购买,防止付款了不发货!
QQ交流群:226333560 站长微信:qgzmt2
温馨提示:本站提供的一切软件、教程和内容信息都来自网络收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

给TA打赏
共{{data.count}}人
人已打赏
行业资讯

新疆面向全国省市高校招聘(招聘2380人!新疆面向高校毕业生人才引进线上招聘活动今天开始)

2024-9-26 18:24:57

行业资讯

博世壁挂炉(全球著名品牌博世的扁平化LOGO姗姗来迟)

2024-9-26 18:45:32

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索