C语言-算术运算符

算术运算符

  • 一、正负号
  • 二、加减乘除
  • 三、取余
  • 四、自加自减运算
    • 1.单独使用
    • 2.复合使用
  • 五、对除法和取余的练习

算数运算符,顾名思义就是做算术运算呗,无非就是将我们学过的数学中的运算搬到计算机上。

C语言-算术运算符_第1张图片

一、正负号

  例如可以像下面这样使用:

int x = -12; // 直接在前面加个负号就行
int y = -x;
int z = +y; // +可以省略

二、加减乘除

  加减乘法可以像下面这样使用:

int x = 1 + 2; // 加法,将3赋值给变量x

int y = 4 - 1; // 减法,将3赋值给变量y

int z = 3 * 1; // 乘法,将3赋值给变量z

  对于除法,我们需要注意,如果是整数相除会丢弃小数部分,如果有浮点数参与除法的话就会保留小数

这是由于C语言的类型强制转换和数据类型差异所导致的。例如下面的代码中:

  • 第一个是由于 6/4中的6和4默认都是int类型,所以他们的运算结果也是int型1,又由于接受他的变量x是一个float类型,所以int型1会自动转换为float型(隐式类型转换),所以结果位1.000000
  • 第二个是由于6.0/4中的6.0是double型,而4是int型,所以在进行运算之前会先将int型的4转为double型’4.0’,然后运算结果位double型的1.5,然后运算结果经过强制类型转换就成为了float型的1.500000
float x = 6 / 4;
printf("%f\n", x); // 输出 1.000000

float x = (float)(6.0 / 4); // 或者写成 6 / 4.0
printf("%f\n", x); // 输出 1.500000

三、取余

先知道这样两个概念:

被模数:就是取余符号%前面的操作数
模数:就是取余符号%后面的操作数

例如,4%2中,被模数是4,模数是2

注意:取余运算是可以有负数参与的。运算结果的符号与被模数相同

int x1 = 6 % 4; // 2
int x2 = -6 % 4; // -2
int x3 = 6 % -4; // 2
int x4 = -6 % -4; // -2

四、自加自减运算

++ 运算,表示自增1。同理,-- 运算,表示自减1,两者用法一致,故这里只介绍++。

1.单独使用

变量在单独运算的时候,变量前++和变量后++,是没有区别的。

int i = 0;
i++; // i 从 0 自增为 1
++i; // i 从 1 自增为 2

2.复合使用

其他变量放在一起使用或者和输出语句放在一起使用前++后++就产生了不同。

  • 变量前++ :变量先自增1,然后再运算。
  • 变量后++ :变量先运算,然后再自增1
int x = 0;
int y = x++; // y 为 0,x 为 1,因为是 x 先把值赋值给 y,再自增为 1
int z = --y; // z 为 -1,y 为 -1,因为是 y 先自减为 -1,然后再把值赋值给

五、对除法和取余的练习

/**
 * 随意给出一个整数,打印显示它的个位数,十位数,百位数的值。
    格式如下:
        数字xxx的情况如下:
        个位数:
        十位数:
        百位数:

    例如:
    数字153的情况如下:
        个位数:3
        十位数:5
        百位数:1
 */
void fun1() {

    int x;

    printf("请随意给出一个整数:");
    scanf("%d", &x);

    printf("数字%d的情况如下:\n", x);
    printf("个位数:%d\n", x % 10);
    // printf("十位数:%d\n", x % 100 / 10); // 方法一
    printf("十位数:%d\n", x / 10 % 10); // 方法二
    printf("百位数:%d\n", x / 100);

}

你可能感兴趣的:(C语言,c语言,开发语言)