推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

C语言加减乘除运算

   2023-08-25 网络整理佚名2320
核心提示:加减乘除是常见的数学运算,C语言当然支持,不过,C语言中的运算符号与数学中的略有不同,请见下表。加法减法乘法除法求余数(取余)下面的代码演示了如何在C语言中进行加减乘除运算:m*n=-22088对除法的说明C语言中的除法运算有点奇怪,不同类型的除数和被除数会导致不同类型的运算结果:加减乘除运算的简写有时候我们希望对一个变量进行某种运算,然后再把运算结果赋值给变量本身,请看下面的例子:

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

加法、减法、乘法、除法、余数(余数)

数学

X

÷

没有任何

C语言

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

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

#include 
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", m, n, p, q);
    return 0;
}

输出结果:

m=112, n=850., p=1., q=4

您还可以直接使用数字进行计算:

#include 
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, m*n);
    return 0;
}

输出结果:

m=-88,n=251,p=435。

m*2=-176, 6/3=2, m*n=-22088 除法的解释 C 语言中的除法运算有点奇怪,不同类型的除数和被除数会导致不同类型的运算结果:

请看下面的代码:

#include 
int main()
{
    int a = 100;
    int b = 12;
    float c = 12.0;
   
    double p = a / b;
    double q = a / c;
   
    printf("p=%lf, q=%lf\n", p, q);
   
    return 0;
}

运行结果:

p=8.,q=8。

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

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

然而,编译器一般对此错误无能为力。 很多情况下,编译器在编译阶段无法计算出除数的值,无法做出有效的预测。 “除数为0”的错误只有在程序运行后才能发现,而程序在运行阶段一旦出现任何错误,结果只能有一个,那就是崩溃并被操作系统终止。

请看下面的代码:

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

这段代码使用了一个新函数 scanf。 scanf和scanf的功能相反,用于输出数据,scanf用于读取数据。 这里,scanf从控制台读取两个整数,并将它们分别赋给a和b。 关于scanf的具体用法,我们将在《C语言scanf:读取键盘输入的数据(含输入格式汇总表)》一节中详细讲解。 。 程序开头定义了两个int类型的变量a和b。 程序运行后,从控制台读取用户输入的整数并分别赋值给a和b。 这时才能知道a和b的具体值,才能知道除数。 b不为0。这种情况下,b的值在程序运行过程中会发生变化,这与用户输入的数据有关,编译器根本无法预测,所以出现“除数为0”的错误” 无法及时找到。 求余运算的解释 取余,即求余数,所用的运算符是%。 C语言中的求余运算只能对整数进行,也就是说%两边都必须是整数,不能出现小数,否则编译器会报错。

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

请参阅下面的示例:

#include 
int main()
{
    printf(
        "100%=%d \n100%%-12=%d \n-100%=%d \n-100%%-12=%d \n",
        100, 100%-12, -100, -100%-12
    );
    return 0;
}

运行结果:

100=4

100%-12=4

-100=-4

-100%-12=-4

在 中,% 是格式控制字符的开头。 为特殊字符,不能直接输出; 如果要输出%,则必须在前面加一个%。 此时%就变成了普通字符,不再用来表示格式控制字符。

加、减、乘、除运算的简写 有时我们想对一个变量进行某些运算,然后将运算结果赋给变量本身,请看下面的例子:

#include 
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的值就变成了20。

a = a * b 相当于将a的值(即20)乘以b的值(即10),然后将运算结果(即200)赋值给a,则a的值a 变为 200。

上述操作可以理解为对变量本身进行一定的操作。

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

a = a # b

可以简写为:

一个#=b

#代表+、-、*、/、%中的任意运算符。

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

下面的简写也是正确的:

int a = 10, b = 20;
a += 10;  //相当于 a = a + 10;
a *= (b-10);  //相当于 a = a * (b-10);
a -= (a+20);  //相当于 a = a - (a+20);

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

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON