☀️光天化日学C语言☀️(09)- 算术运算符 | 小学就会了?温故而知新,可以为师矣!

🙉饭不食,水不饮,题必须刷🙉

C语言免费动漫教程,和我一起打卡!
🌞《光天化日学C语言》🌞

LeetCode 太难?先看简单题!
🧡《C语言入门100例》🧡

数据结构难?不存在的!
🌳《数据结构入门》🌳

LeetCode 太简单?算法学起来!
🌌《夜深人静写算法》🌌

一、前言

  本文作者是从 2007 年开始学 C语言 的,不久又接触了C++,基本就是 C/C++ 技术栈写了 14 年的样子,不算精通,但也算差强人意。著有《夜深人静写算法》系列,且承诺会持续更新,直到所有算法都学完。主要专攻 高中 OI 、大学 ACM、 职场 LeetCode 的全领域算法。由于文章中采用 C/C++ 的语法,于是就有不少读者朋友反馈语言层面就被劝退了,更何况是算法。
  于是,2021 年 06 月 12 日,《光天化日学C语言》 应运而生。并且作者在此承诺,这个系列全部文章均免费且开源,主要服务于高中生、大学生以及职场上想入坑C语言的志同道合之人,希望能给祖国引入更多编程方面的人才,并且让自己的青春不留遗憾!
  这一章的主要内容是介绍C语言中的算术运算符,或许你在小学就已经学会,不急,我们再来复习一遍。
在这里插入图片描述

二、人物简介

  • 第一位登场的就是今后会一直教我们C语言的老师 —— 光天。
  • 第二位登场的则是今后会和大家一起学习C语言的没什么资质的小白程序猿 —— 化日。

三、算术运算符

  • 算术运算符主要包含以下几个:
  • 1)四则运算符,也就是数学上所说的加减乘除;
  • 2)取余符号;
  • 3)自增和自减。
  • 那么接下来让我们一个一个来看看吧。

1、四则运算符

  • 数学上的加减乘除和C语言的加减乘除的含义类似,但是符号表示方法不尽相同,对比如下:
/加法减法乘法除法
数学+- × \times ×÷
C语言+-*/

1)加法

  • a + b代表两个操作数相加,代码如下:
#include <stdio.h>
int main() {
    int a = 1, b = 2;
    double c = 1.005, d = 1.995;
    printf("a + b = %d\n", a + b );
    printf("c + d = %.3lf\n", c + d);
    printf("a + c = %.3lf\n", a + c);
    return 0;
}

  • 这段代码的输出为:
a + b = 3
c + d = 3.000
a + c = 2.005

2)减法

  • a - b代表从第一个操作数中减去第二个操作数,代码如下:
#include <stdio.h>
int main() {
    int a = 1, b = 2;
    double c = 1.005, d = 1.995;
    printf("a - b = %d\n", a - b );
    printf("c - d = %.3lf\n", c - d);
    printf("a - c = %.3lf\n", a - c);
    return 0;
}
  • 这段代码的输出为:
a - b = -1
c - d = -0.990
a - c = -0.005

3)乘法

  • a * b代表两个操作数相乘,代码如下:
#include <stdio.h>
int main() {
    int a = 1, b = 2;
    double c = 1.005, d = 1.995;
    printf("a * b = %d\n",    a * b);
    printf("c * d = %.3lf\n", c * d);
    printf("a * c = %.3lf\n", a * c);
    return 0;
}

  • 这段代码的输出为:
a * b = 2
c * d = 2.005
a * c = 1.005

4)除法

不同类型的除数和被除数会导致不同类型的运算结果。
  1)当 除数 和 被除数 都是整数时,运算结果也是整数;
    1.a)如果能整除,结果就是它们相除的商;
    1.b)如果不能整除,那么就直接丢掉小数部分,只保留整数部分,即数学上的 取下整
  2)除数和被除数中有一个是小数,那么运算结果也是小数,并且是 double 类型的小数。

  • 我们来看一段代码:
#include <stdio.h>
int main() {
    int a = 6, b = 3, c = 4;
    double d = 4;
    printf("a / b = %d\n", a / b );
    printf("a / c = %d\n", a / c);
    printf("a / d = %.3lf\n", a / d);
    return 0;
}
  • 输出结果如下:
a / b = 2
a / c = 1
a / d = 1.500
  • a能被整除b,所以第一行输出它们的商,即 2
  • a不能被整除c,所以第二行输出它们相除的下整,即 1
  • ad中,d为浮点数,所以相除得到的也是浮点数;

#include <stdio.h>
int main() {
    int a = 5, b = 0;
    int c = a / b;
    return 0;
}
  • 这里会触发一个异常,即 除零错。这种情况在 C语言中是不允许的,但是由于变量的值只有在运行时才会确定,编译器是没办法帮你把这个错误找出来的,平时写代码的时候一定要注意。

2、取余符号

  • 取余,也就是求余数,使用的运算符是%。C语言中的取余运算只能针对整数,也就是说,%两边都必须是整数,不能出现小数,否则会出现编译错误。
  • 例如:5 % 3 = 27 % 2 = 1

当然,余数可以是正数也可以是负数,由%左边的整数决定:
  1)如果%左边是正数,那么余数也是正数;
  2)如果%左边是负数,那么余数也是负数。

  • 我们继续来看一段代码:
#include <stdio.h>
int main()
{
    printf(
        "9%%4=%d\n"
        "9%%-4=%d\n"
        "-9%%4=%d\n"
        "-9%%-4=%d\n",
        9%4, 
        9%-4, 
        -9%4, 
        -9%-4
    );
    return 0;
}

  • 光天化日学C语言(08)- 常量 这一章中,我们提到的两个用""引起来的字符串是可以无缝连接的,所以这段代码里面四个字符串相当于一个。而%printf中是用来做格式化的,所以想要输出到屏幕上,需要用%%。于是,我们得到输出结果如下:
9%4=1
9%-4=1
-9%4=-1
-9%-4=-1
  • 印证了最后的符号是跟着左边的数走的。

3、自增和自减

  • 自增和自减的情况类似,所以我们只介绍自增即可。

	x = x + 1;
  • 我们也可以写成:
	x++;
  • 当然,也可以写成:
	++x;
  • 这两者的区别是什么呢?我们来看一段代码:
#include <stdio.h>
int main()
{
    int x = 1;
    printf( "x = %d\n", x++ );
    printf( "x = %d\n", x );
    return 0;
}
  • 输出结果是:
x = 1
x = 2
  • 这是因为x在自增前,就已经把值返回了,所以输出的是原值。我们再来看另一种情况:
#include <stdio.h>
int main()
{
    int x = 1;
    printf( "x = %d\n", ++x );
    printf( "x = %d\n", x );
    return 0;
}
  • 输出结果是:
x = 2
x = 2
  • 这是因为x先进行了自增,再把值返回,所以输出的是自增后的值。
  • 当然,自减也是同样的道理,大家可以自己写代码实践一下。

通过这一章,我们学会了:
  1)四则运算符;
  2)取余运算符;
  3)自增和自减运算符;

  • 希望对你有帮助哦 ~ 祝大家早日成为 C 语言大神!

课后习题

在这里插入图片描述


📢博客主页:https://blog.csdn.net/WhereIsHeroFrom
📢欢迎各位 👍点赞 ⭐收藏 📝评论,如有错误请留言指正,非常感谢!
📢本文由 英雄哪里出来 原创,转载请注明出处,首发于 🙉 CSDN 🙉
作者的专栏:
  👉C语言基础专栏《光天化日学C语言》
  👉C语言基础配套试题详解《C试题100例》
  👉算法进阶专栏《夜深人静写算法》

  • 37
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

英雄哪里出来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值