C语言 运算符

时间:2024.11.4

一、学习内容

1、算数运算符(加、减、乘、除法和取余) 

通用细节:
    

   1.整数计算,结果一定是一个整数
    2.小数计算,结果一定是一个小数
    3.整数和小数计算,结果一定是一个小数
    4.小数直接参与计算,结果有可能不精确
    

除法的细节:

不能除以0

 取余的细节:

    1.取余运算的数据必须全部是整数
    2.获取余数的正负,是与第一个数字保持一致的
    3.不能除以0        

#include<stdio.h>
int main() {
//数字直接计算printf("%d\n", 3 + 2);printf("%d\n", 3 - 2);printf("%d\n", 3 * 2);printf("%.2lf\n", 1.1 + 1.01);printf("%.2lf\n", 1.1 - 1.01);printf("%.2lf\n", 1.1 * 1.01);//变量进行运算int a = 3, b = 2;printf("%d\n", a + b);printf("%d\n", a - b);printf("%d\n", a * b);
//除法(/)	printf("%d\n", 10/2);
//取余(%)printf("%d\n", 10 % 2);
/*通用细节:1.整数计算,结果一定是一个整数2.小数计算,结果一定是一个小数3.整数和小数计算,结果一定是一个小数4.小数直接参与计算,结果有可能不精确除法的细节:不能除以0取余的细节:1.取余运算的数据必须全部是整数2.获取余数的正负,是与第一个数字保持一致的3.不能除以0        */printf("%d\n", 10 / 3);    //3printf("%lf\n", 10 / 3);   //0.00000printf("%lf\n", 10.0+3.0);printf("%lf\n", 10/ 3.0);printf("%d\n", 10 / 3.0);   //-1431655765,出错printf("%lf\n", 3.333333333333333+6.666666666666666);  //10.000000printf("%.20lf\n", 10.0 / 3.0);  //3.33333333333333348136printf("%d\n", -10 % 3);   //-1printf("%d\n", 10 % -3);   //1return 0;
}

2、隐式转换

数字相加,数据类型不一样不能直接运算,需要转成一样的,才能运算

隐式转换(程序自动帮我们完成的):

把一个取值范围小的,转换成取值范围大的(程序自动在前面补0)

short a=10;
int b=a;
short a=10;
short b=20;
c=a+b;//c为int类型

 

3、强制转换

把一个取值范围大的,赋值给取值范围小的,就需要强制转换,有可能会导致数据发生错误

格式:目标数据类型 变量名=(目标数据类型)被强转的数据;

int b=10;
short i=(short)b;

//错误代码
short s1=10;
short s2=20;
short result =s1+s2;//正确代码
short s1=10;
short s2=20;
short result =(short)(s1+s2);

 要求:凡是强制转换,需要自己手动书写

4、字符相加

char c='a';
int i=c+1;
char c=97;
printf("%d\n",c);   //97
printf("%c\n",c);   //a

 ASCII码如果忘记,可以在VS中用代码算

printf("%d\n",'a');

5、算术运算符小结

6、自增自减运算符

 

int a=10;
a++;
printf("%d\n",a);//11int a=10;
++a;
printf("%d\n",a);//11

7、自增自减运算符扩展

int a=10;
int b=a++;   //先用再加,b=10int a=10;
int b=++a;   //先加后用,b=11
int a=10;
int b=a++;//b=10
int c=++a;//c=12
printf("%d\n",a);
printf("%d\n",b);
printf("%d\n",c);int i=10;
int j=5;
int k=i++ + ++i - --j - i--;
//    11  +  11 - 4   - 11  = 7  windows
//    10  +  12 - 4   - 12  =6   mac
printf("%d\n",k);//windows:7
前缀优先于后缀
前缀统一自增/自减,再把结果拿出来用
12 +12=24
//后缀统一先用,等整个表达式中变量用完了,再进行自增//mac、Linux:6
//前缀和后缀的优先级是一样的
//从左到右依次计算
//每一个前缀和后缀都是一个独立的个体
int a=10;
int k1= a++ + a++ +a;  //10+10+10,a=12
int k2= ++a + ++a +a;  //14+14+14,a=14
int k3= ++a + a++ +a;  //15+15+15,a=16
int k4= a++ + ++a +a;  //17+17+17,a=18printf("%d\n",k1);//30
printf("%d\n",k2);//42
printf("%d\n",k3);//45
printf("%d\n",k4);//51

 

8、赋值运算符

//+=
//把左边和右边进行相加,结果赋值给左边,对右边没有任何影响
int a=10;
int b=20;
a+=b;
printf("%d\n",a);//30
printf("%d\n",b);//20

9、关系运算符

int a=10;
int b=20;printf("%d\n",a==b);  //0
printf("%d\n",a!=b);  //1
printf("%d\n",a>b);   //0
printf("%d\n",a>=b);  //0
printf("%d\n",a<b);   //1
printf("%d\n",a<=b);  //1

 

10、逻辑运算符

//1:成立  0:不成立
//&&(与):并且
printf("%d\n",1&&1);//1
printf("%d\n",0&&0);//0
printf("%d\n",1&&0);//0
printf("%d\n",0&&1);//0//||(或):或者
printf("%d\n",1||1);//1
printf("%d\n",0||0);//0
printf("%d\n",1||0);//1
printf("%d\n",0||1);//1//取反!
printf("%d\n",!1);//0
printf("%d\n",!0);//1

 

11、逻辑运算符的短路效果

 

int a=0;
printf("%d\n",a>1&&a<10);//0
//只比较了a>1int b=10;
printf("%d\n",b==10||b==20);//1
//只比较了b==10

 

12、三元运算符

//三目运算符、三目表达式、问号冒号运算符
//格式:关系表达式?表达式1:表达式2;//练习1:获取两个变量的较大值
int a=10;
int b=20;
int c=a>b?a:b;
printf("%d\n",c);//获取三个变量的最大值
int a=10;
int b=30;
int c=20;
int d=a>b?a:b;
int f=c>d?c:d;
printf("%d\n",f);

13、逗号运算符(分隔符)

int a=1,b=2,c=3;
printf("%d %d %d\n",a,b,c);//逗号运算符(分隔符)
int i;
i=3,++i,i++,i+5;  //i=10
printf("%d\n",i);//printf("%d\n",3,++i,i++,i+5);错误写法,格式字符串里传递的参数太多
//等价于printf("%d\n",(i=3,++i,i++,i+5));

#include<stdio.h>
int main(){int n;
int a,b,c;
scanf("%d\n",&n);
a=n>=0?n:(-1*n);
b=a%3;              //a%=3;
c=b*10;             //a*=10;
printf("%d\n",c);  //printf("%d\n",a);return 0;
}//用逗号运算符
a=n>=0?n:(-1*n),a%=3,a*=10;

 

14、运算符的优先级

//练习1
int w=4,x=3,y=2,z=1;
int number=w<x?w:z<y?z:x;  //1
printf("%d\n",number);//练习2
int a=3,b=2,c=1;
int max =a>b?(a>c?a:c):(b>c?b:c);
printf("max=%d\n",max);//3//练习3
int x=10,y=20,z=30,h=40,w=50;
int number=x>h?z>w?x>z?x>y?x:y:z:w:w>h?w:h;
//int number=x>h?(z>w?x>z?x>y?x:y:z:w):w>h?w:h;
//int number=x>h?(z>w?x>z?x>y?x:y:z:w):w>h?w:h;//50
printf("%d\n",number);

二、练习

1、练习1-数值拆分

需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台。

#include<stdio.h>
int main() {//数值拆分//键盘录入+数值拆分+输出打印int n, a, b, c;scanf("%d", &n);a = n / 100;b = n / 10 % 10;c = n % 10;printf("%d\n", a);printf("%d\n", b);printf("%d\n", c);return 0;
}

 

2、练习2-逻辑运算

1)x<=0
2)a!=0

1.
int n;
int a,b;
scanf("%d\n",&n);
a=n/10;
b=n%10;
int c=(a!=7)&&(b!=7);
printf("%d\n",c);2.
int n;
int a,b;
scanf("%d\n",&n);
a=n/10;
b=n%10;
int c=(a!=7)&&(b!=7)&&(n%7!=0);
printf("%d\n",c);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

贝叶斯+PINN!双重热点buff叠加,轻松斩获Nature子刊!

PINN一直以来都是顶会顶刊上的大热方向&#xff0c;相关研究量多且质量高。最近&#xff0c;有关“贝叶斯PINN”的研究取得了不少突破&#xff0c;多项成果被Neurips、Nature子刊等录用。 事实上&#xff0c;这个结合方向的研究热度正逐渐上升&#xff0c;因为其在提高泛化能力…

Python模拟真人动态生成鼠标滑动路径

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序&#xff0c;它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言&#xff0c;原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势&#xff1a; 模拟…

react-router与react-router-dom的区别

写法上的区别&#xff1a; 写法1: import {Swtich, Route, Router, HashHistory, Link} from react-router-dom;写法2: import {Switch, Route, Router} from react-router; import {HashHistory, Link} from react-router-dom;react-router实现了路由的核心功能 react-router-…

为数据集而生的 SQL 控制台

随着数据集的使用量急剧增加&#xff0c;Hugging Face 社区已经变成了众多数据集默认存放的仓库。每月&#xff0c;海量数据集被上传到社区&#xff0c;这些数据集亟需有效的查询、过滤和发现。 Dataset Monthly Creations 每个月在 Hugging Face Hub 创建的数据集 我们现在非常…

2024年计算机视觉与图像处理国际学术会议 (CVIP 2024)

目录 大会简介 主办单位&#xff0c;协办单位 组委会 主讲嘉宾 征稿主题 参会方式 会议议程 重要信息 会议官网&#xff1a;iccvip.org 大会时间&#xff1a;2024年11月15日-17日 大会地点&#xff1a;中国 杭州 大会简介 2024年计算机视觉与图像处理国际学术会议(C…

【D3.js in Action 3 精译_039】4.3 D3 面积图的绘制方法及其边界标签的添加

当前内容所在位置&#xff1a; 第四章 直线、曲线与弧线的绘制 ✔️ 4.1 坐标轴的创建&#xff08;上篇&#xff09; 4.1.1 D3 中的边距约定&#xff08;中篇&#xff09;4.1.2 坐标轴的生成&#xff08;中篇&#xff09; 4.1.2.1 比例尺的声明&#xff08;中篇&#xff09;4.1…

使用 PyCharm 构建 FastAPI 项目:零基础入门 Web API 开发

使用 PyCharm 构建 FastAPI 项目&#xff1a;零基础入门 Web API 开发 本文提供了一份完整的 FastAPI 入门指南&#xff0c;涵盖从环境搭建、依赖安装到创建并运行一个简单的 FastAPI 应用的各个步骤。通过 FastAPI 和 Uvicorn&#xff0c;开发者可以快速构建现代化的 Web API…

【综合算法学习】(第十六篇)

目录 岛屿的最⼤⾯积&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 被围绕的区域&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 岛屿的最⼤⾯积&#xff08;medium&#xff09; 题目解析 1.题目链接&#xff1a;. - 力扣&#xf…

qt QTabWidget详解

1、概述 QTabWidget是Qt框架中的一个控件&#xff0c;它提供了一个标签页式的界面&#xff0c;允许用户在不同的页面&#xff08;或称为标签&#xff09;之间切换。每个页面都可以包含不同的内容&#xff0c;如文本、图像、按钮或其他小部件。QTabWidget非常适合用于创建具有多…

用ChatGPT提升工作效率:从理论到实际应用

伴人工智能技术的迅速演进&#xff0c;像ChatGPT这类语言模型已成为提升工作效率的关键工具。这类模型不仅具备处理海量数据的能力&#xff0c;还能自动化许多日常任务&#xff0c;从而提高决策的准确性。本文将深入探讨如何在工作中利用ChatGPT等AI工具提升效率&#xff0c;涵…

VScode调试

VScode只是一个代码编辑器&#xff0c;下面我们使用VScode调试运行在远端连接Linux服务器的代码。 打断点 编译代码&#xff0c;要确保已经安装gdb&#xff0c;可以使用指令gdb --version 来检查 GDB 是否已安装以及安装的版本&#xff0c;确认安装后在编译时要加上选项&…

成都睿明智科技有限公司正规吗靠谱吗?

在这个短视频风起云涌的时代&#xff0c;抖音电商以其独特的魅力&#xff0c;成为了无数商家竞相追逐的新蓝海。而在这片浩瀚的商海中&#xff0c;成都睿明智科技有限公司犹如一艘装备精良的航船&#xff0c;引领着众多企业破浪前行&#xff0c;探索抖音电商的无限可能。今天&a…

Web Broker(Web服务应用程序)入门教程(1)

1、介绍 Web Broker 组件&#xff08;位于工具面板的“Internet”选项卡中&#xff09;可以帮助您创建与特定统一资源标识符&#xff08;URI&#xff09;相关联的事件处理程序。当处理完成后&#xff0c;您可以通过编程方式构建 HTML 或 XML 文档&#xff0c;并将它们传输给客…

<HarmonyOS第一课>HarmonyOS SDK开放能力简介的课后习题

不出户&#xff0c;知天下&#xff1b; 不窥牖&#xff0c;见天道。 其出弥远&#xff0c;其知弥少。 是以圣人不行而知&#xff0c;不见而明&#xff0c;不为而成。 本篇<HarmonyOS第一课>HarmonyOS SDK开放能力简介是简单介绍了HarmonyOS SDK&#xff0c;不需要大家过多…

【Java并发】乐观锁、悲观锁、CAS、版本号机制

前言 在现代计算机系统中&#xff0c;处理并发操作时&#xff0c;锁机制是至关重要的。本文将介绍乐观锁、悲观锁以及CAS&#xff08;Compare and Swap&#xff09;这三种常见的并发控制技术&#xff0c;帮助理解它们的原理和应用场景。 1.悲观锁 1.1 定义 悲观锁是一种在访…

三层交换技术,eNSP实验讲解

三层交换技术&#xff0c;eNSP实验讲解 一、简要介绍1、概念2、工作原理3、优点4、应用场景5、与路由器的区别 二、eNSP仿真实验1、步骤一&#xff1a;创建连接&#xff0c;明确参数。2、步骤二&#xff1a;设置PC1和PC2参数3、步骤三&#xff1a;配置交换机&#xff0c;通过命…

C++设计模式创建型模式———生成器模式

文章目录 一、引言二、生成器/建造者模式三、总结 一、引言 上一篇文章我们介绍了工厂模式&#xff0c;工厂模式的主要特点是生成对象。当对象较简单时&#xff0c;可以使用简单工厂模式或工厂模式&#xff1b;而当对象相对复杂时&#xff0c;则可以选择使用抽象工厂模式。 工…

Python 如何在 Web 环境中使用 Matplotlib 进行数据可视化

Python Matplotlib 在 Web 环境中的可视化 数据可视化是数据科学和分析中一个至关重要的部分&#xff0c;它能帮助我们更好地理解和解释数据。在现代应用中&#xff0c;越来越多的开发者希望能够将数据可视化结果展示在网页上。Matplotlib 是 Python 中最常用的数据可视化库之…

模型部署流程

神经网络部署流程 工业界应用神经网络时&#xff0c;往往要对学术界产出的模型进行优化&#xff0c;才能在推理设备/服务器上实现更高的效率&#xff0c;从而降低成本&#xff0c;这整个过程也一般称之为模型部署&#xff08;Deployment&#xff09;。 部署的目的 模型部署目…