• C中的运算和数据类型


    运算

    进行加法运算的+和进行乘法运算的*等符号,称为运算。本章我带大家进入基本运算符的学习

    运算符和操作数

    读取两个整数的值,然后显示出它们的和、差、积、商和余数。
    代码如下:

    #include
    
    int main()
    {
    	int x = 0;
    	int y = 0;
    	puts("请输入两个整数。");
    	printf("整数x:");
    	scanf("%d", &x);
    	printf("整数y:");
    	scanf("%d", &y);
    
    	printf("x+y=%d\n", x + y);
    	printf("x-y=%d\n", x - y);
    	printf("x*y=%d\n", x * y);
    	printf("x/y=%d\n", x / y);
    	printf("x%%y=%d\n", x % y);
    
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    像+ - * / %这样可以进行运算的符号称为运算符,作为运算对象的变量或常量称为操作符
    image.png
    运算符左边的操作数称为第一操作数或者左操作数,运算符右侧的操作数称为第二操作数或者右操作数

    乘除运算符和加减运算符

    上述代码中使用的5个运算符,可以大致的分为乘除运算符和加减运算符。
    image.png
    image.png

    除法运算的商和余数

    除法运算符有两种。通过除法运算符求商的运算符是/。
    整数/整数 商的整数部分
    除法运算只取商的整数部分,也就是说会舍弃小数点以后的部分。例如:5/3的结果是1,3/5的结果是是0。
    整数%整数 余数
    %是求余数运算符。例如:5%3的结果是2,3%5的结果是3。

    使用printf函数输出%

    在printf函数中的%符号具有转换说明的功能,当不需要转换的时候要写成%%,这样就可以输出%这个符号了。

    获取整数的最后一位数字

    通过应用求余数的运算来获取整数的最后一位数字。例如:
    代码如下:

    #include
    
    int main()
    {
    	int n = 0;
    	printf("请输入一个整数:");
    	scanf("%d", &n);
    
    	printf("最后一位数是%d。", n % 10);
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    运行结果如下:
    image.png
    进行除法运算的/运算符和%运算符的结果依赖与编译器。

    当两个操作数都是正数的时候

    不管是那种编译器,商和余数都是正数。如下:

    两个操作数至少有一个为负数

    至于/运算符的结果是”小于代数商的最大整数“还是”大于代数商的最小整数“,要取决于编译器。例如:

    多个转换说明

    读取两个整数,并显示它们的商和余数。
    代码如下:

    #include
    
    int main()
    {
    	int a = 0;
    	int b = 0;
    	puts("请输入两个整数");
    	scanf("%d %d", &a, &b);
    	printf("%d除以%d得%d余%d。\n", a, b, a / b, a % b);
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    运行结果如下:
    image.png

    单目操作符

    对读取的整数进行符号取反操作,并输出结果。
    代码如下:

    #include
    
    int main()
    {
    	int n = 0;
    	printf("请输入一个整数:");
    	scanf("%d", &n);
    
    	printf("符号取反之后的值是%d。\n", -n);
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    运行结果如下:
    image.png
    根据我们操作符操作的操作数来确定是单目、双目还是三目操作符。在上述代码种的-运算符,就是对符号进行取反操作。

    表达式和赋值表达式

    表达式由变量和常量,以及连接它们的运算符组成。例如:
    x+32 进行加法运算的表达式
    x+32和x、32都是表达式
    c=x+32 赋值表达式

    表达式语句

    C语言规定语句必须以分号结尾,因此前面提到的赋值表达式写成以下形式,才能成为正确的语句。
    c=x+32; 表达式语句
    这种由表达式和分号组成的语句称为表达式语句

    数据类型

    数据类型有很多浮点型和整数型。下面主要讲下double类型。

    求平均值

    读取两个数,求出它们的平均值
    代码如下:

    #include
    
    int main()
    {
    	int a = 0;
    	int b = 0;
    	puts("请输入两个整数:");
    	scanf("%d %d", &a, &b);
    
    	printf("它们的平均值是%d。\n", (a + b) / 2);
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    运行结果:
    image.png
    将表达式a+b括起来的(),优先级运算的标记。如果该表达式是a+b/2,结果就变成了求a和b/2的和,这与我们平时所做的数学计算相同,及要遵循先乘除后加减。

    数据类型

    现实生活中的平均值一般都带有小数,但是我们通过上面的案例可以得知,小数点以后的部分被舍弃了,只是留下了整数部分,这就是int类型的特征。
    C语言中以浮点数表示实数,浮点数有几种类型,我们主要讲下双精度浮点数double。代码如下:

    #include
    
    int main()
    {
    	int n = 0;
    	double x = 0;
    
    	n = 9.99;
    	x = 9.99;
    	
    	printf("int 型变量n的值:%d\n", n);
    	printf("          n/2:%d\n", n / 2);
    
    	printf("double型变量x的值:%f\n", x);
    	printf("            x/2.0:%f\n ", x / 2.0);
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    运行结果:
    image.png
    我们声明一个int类型变量n和一个double类型变量x,并把9.99作为值赋给他们,当给一个int类型的变量的时候,小数点后面的部分就被舍弃了。当使用它进行除法运算的时候,小数部分还是会被舍弃的。
    同时还需要注意的是使用printf函数打印浮点型数据的时候,转换说明不能用%d要使用%f。

    数据类型和对象

    从前面的程序可以看出来int类型只能存放整数,即使把实数传给它,也只能保留整数部分。与之相对,浮点数中的double类型可以用来存储包含小数的实数值。

    总结

    image.png
    image.png

  • 相关阅读:
    PyTorch深度学习实战(17)——多任务学习
    Unity-Adressable打包热更
    万能在线预约小程序系统源码 适合任何行业在线预约小程序+预约到店模式 带完整的搭建教程
    [esp32-wroom]基础开发
    cesium加载高层级离线影像地图瓦片(天地图、19级Arcgis)
    机器学习——奇异值分解二(特征分解+SVD纯理解)
    solidity 存储 /变量
    EffectiveC++-条款38:通过复合塑模出 has-a 或 根据某物实现出
    多线程之间如何进行通信 ?
    linux放开8080端口
  • 原文地址:https://blog.csdn.net/weixin_63284756/article/details/131142323