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,一经查实,立即删除!

相关文章

php反序列化靶场随笔分析

项目地址&#xff1a;github.com/mcc0624/php_ser_Class 推荐使用docker部署&#xff1a;https://hub.docker.com/r/mcc0624/ser/tags 前面讲了以下php基础&#xff0c;我们直接从class6开始实验 class6 访问页面&#xff0c;传一个序列化的字符串&#xff0c;php代码将其反…

nginx代理websocket服务

一、nginx代理websocket服务 一&#xff09;nginx代理ws服务 在nginx中&#xff0c;可以通过proxy_pass指令来代理WebSocket服务。 以下是一个示例配置&#xff1a; map $http_upgrade $connection_upgrade {default upgrade; close; }upstream ws_backend {server 127.0.0.1:…

56合并区间 go解题

这里解法是直接找一个快排模板&#xff0c;然后排序了第一个数&#xff0c;所以需要多加一个判断逻辑并且稍微覆盖。 package mainimport "fmt"func main() {fmt.Println(merge([][]int{{0, 2}, {2, 3}, {4, 4}, {0, 1}, {5, 7}, {4, 5}, {0, 0}}))// fmt.Println(m…

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

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

【rust】rust基础代码案例

文章目录 HelloWorld斐波那契数列计算表达式&#xff08;加减乘除&#xff09; HelloWorld fn main() {print!("Hello,Wolrd") }斐波那契数列 fn fib(n: u64) -> u64 {let mut a 0;let mut b 1;for _ in 0..n {let c a b;a b;b c;}a }fn main() {let n 1…

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

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

从网络到缓存:在Android中高效管理图片加载

文章目录 在Android应用中实现图片缓存和下载项目结构使用 代码解析关键功能解析1. 图片加载方法2. 下载图片3. 保存图片到缓存4. 文件名提取 或者通过学习glide 首先我们需要在配置AndroidManifest.xml里面添加 <uses-permission android:name"android.permission.IN…

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-…

如何在C下比较两个字符串是否相同?

strcmp函数 strcmp函数是C标准库中用于比较两个字符串的函数。它的原型定义在string.h头文件中 函数原型&#xff1a; int strcmp(const char *str1, const char *str2); str1 和 str2 是两个要比较的字符串。返回值为整数类型&#xff1a; 如果返回值为0&#xff0c;表示两…

为数据集而生的 SQL 控制台

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

modelscope下载Qwen2.5 72B 模型方法

conda create -n modelscope python=3.10 conda activate modelscopepip install modelscope执行这个python代码: from modelscope.hub.snapshot_download import snapshot_download# 下载模型到当前路径 model_dir = snapshot_download(

【Git】如何在 Git 中高效合并分支:完整指南

目录 引言1. 切换到主分支1.1 切换分支命令1.2 相关命令1.3 切换分支示意图 2. 合并分支2.1 基本合并命令2.2 合并选项2.3 合并流程示意图 3. 解决冲突3.1 解决冲突的步骤3.2 相关命令3.3 解决冲突示意图 4. 本地更新分支4.1 拉取远程更改4.2 更新主分支4.3 拉取远程更新到本地…

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…

通过AI进行大数据分析,提示广告投放效果,优衣库的AI实践

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 AI工具集1&#xff1a;大厂AI工具【共23款…

Python小白学习教程从入门到入坑------第二十四课 继承(语法进阶)

一、继承 继承就是让类和类之间转变为父子关系&#xff0c;子类默认继承父类的属性和方法 在Python中&#xff0c;继承是一个非常强大的特性&#xff0c;它允许我们创建一个新的类&#xff08;称为子类&#xff09;&#xff0c;这个新类可以继承另一个类&#xff08;称为父类…

【django】RESTful API 设计指南

目录 一、协议 二、域名 三、版本&#xff08;Versioning&#xff09; 四、路径&#xff08;Endpoint&#xff09; 五、HTTP动词 5.1 CRUD操作&#xff1a; 5.2 其他动词&#xff1a; 六、过滤信息&#xff08;Filtering&#xff09; 七、状态码&#xff08;Status Co…

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

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