10.30学习
一、科学计数法
C语言中的科学计数法主要用于表示非常大或非常小的浮点数,它遵循以下格式:
1. 'E'或'e'表示指数:
科学计数法中的'E'或'e'用来表示“指数”(Exponent)。例如, 1.23e4 或 1.23E4 表示 1.23 * 10^4 。
2. 指数部分:
指数部分可以是正数或负数,用来表示10的幂。例如, 1.23e-4 表示 1.23 * 10^-4 。
3. 符号:
数字可以是正数或负数,符号用 + 或 - 表示。如果省略符号,默认为正数。
4. 小数点:
科学计数法必须包含小数点,即使小数部分只有一个数字。
5. 数字序列:
小数点前后的数字序列可以包含任意数量的数字。
6. 浮点数类型:
在C语言中,科学计数法通常用于 float 和 double 类型的浮点数。
7. 精度:
float 类型通常提供大约6位有效数字的精度,而 double 类型提供大约15位有效数字的精度。
8. 溢出和下溢:
当指数太大或太小,超出了浮点数类型的表示范围时,会发生溢出(overflow)或下溢(underflow)。
9. 编译器实现:
不同编译器可能对科学计数法的支持略有不同,但都遵循C语言标准。
10. 打印浮点数:
使用 printf 函数打印浮点数时,可以使用 %e 或 %E 格式说明符来以科学计数法的形式打印。
11. 读取浮点数:
使用 scanf 函数读取浮点数时,也可以使用 %e 或 %E 格式说明符来读取科学计数法表示的浮点数。
12. 标准库函数:
C标准库提供了一些函数,如 pow ,可以用来计算科学计数法中的指数部分。
13. 数值稳定性:
在进行浮点数运算时,科学计数法有助于保持数值的稳定性,尤其是在处理非常大或非常小的数时。
14. 代码示例:
#include <stdio.h>
int main() {
double num = 1.23e4;
printf("The number in scientific notation is: %e\n", num);
return 0;
}
这段代码将打印出 1.230000e+4 。
二、if……else换成switch……case
步骤
1. 确定条件变量:找出 if...else 语句中被检查的变量。
2. 列出所有可能的值:确定这个变量的所有可能值。
3. 替换为 switch 语句:将 if...else 替换为 switch 语句,并将条件变量作为 switch 表达式。
4. 添加 case 标签:对于条件变量的每个可能值,添加一个 case 标签。
5. 处理默认情况:如果有必要,添加一个 default 标签来处理未列出的值。
6. 移除冗余的比较:确保 switch 语句中不包含不必要的比较。
示例
假设你有以下 if...else 语句:
你可以将其转换为 switch...case 语句如下:
在这个例子中:
我们将 score 除以10,这样每个分数段(90-100, 80-89, 70-79, 60-69)都会被映射到一个整数(9, 8, 7, 6)。
对于每个整数,我们添加一个 case 标签。
使用 break 语句来防止代码穿透到下一个 case 。
添加一个 default 标签来处理所有未覆盖的情况(例如,分数低于60)。
三、条件运算符
(一)格式:
condition ? expression1 : expression2;
(二)基本用法:
1. 条件赋值: 根据条件为变量赋值。
int a = 10, b = 20;
int max = (a > b) ? a : b; // 如果a大于b,max为a的值,否则为b的值
2. 简化if-else语句: 用三元运算符替代简单的if-else语句。
int x = 5;
int result = (x > 0) ? 1 : -1; // 如果x大于0,result为1,否则为-1
3. 函数返回值: 在函数中根据条件返回不同的值。
int isPositive(int num) {
return (num > 0) ? 1 : 0; // 如果num是正数,返回1,否则返回0
}
4. 嵌套三元运算符: 嵌套使用三元运算符来处理更复杂的条件。
int score = 85;
char grade = (score >= 90) ? 'A' :
(score >= 80) ? 'B' :
(score >= 70) ? 'C' :
(score >= 60) ? 'D' : 'F'; // 根据分数给等级
5. 与其他运算符结合: 将三元运算符与其他运算符结合使用,进行更复杂的计算。
int a = 10, b = 5;
int difference = (a > b) ? (a - b) : (b - a); // 计算a和b的差值
(三)注意事项
可读性:虽然三元运算符可以减少代码量,但如果使用不当,可能会使代码难以阅读和理解。
优先级:三元运算符的优先级较低,因此在复杂的表达式中可能需要使用括号来明确运算顺序。
类型一致性: expression1 和 expression2 必须能够被隐式转换为相同的类型,或者本身就是相同的类型。
总结
C语言中的三元运算符是一种非常有用的工具,它允许开发者在一行代码中完成条件判断和值的选择。尽管它功能强大,但应该谨慎使用,以保持代码的清晰和简洁。
相关文章:
10.30学习
一、科学计数法 C语言中的科学计数法主要用于表示非常大或非常小的浮点数,它遵循以下格式: 1. E或e表示指数: 科学计数法中的E或e用来表示“指数”(Exponent)。例如, 1.23e4 或 1.23E4 表示 1.23 * 10^4…...
什么是栈溢出
一、什么是栈溢出 栈溢出(Stack Overflow)就是指在程序运行过程中,往栈里存放的数据超过了栈所能容纳的最大容量,从而导致程序出现异常行为的情况。这就好比一个箱子本来只能装一定数量的物品,硬要往里面塞更多的东西&…...
在linux中arm-linux-gcc和/usr/bin/gcc有啥区别
在Linux中,arm-linux-gcc和/usr/bin/gcc都是编译器,但它们之间存在显著的区别,主要体现在编译目标、使用场景以及编译生成的二进制文件的可执行性上。而软链接则是Linux文件系统中的一种特殊文件类型,用于创建一个文件的别名。 a…...
常用环境部署(二十二)——MySQL的数据库迁移到另一个机器上
1、导出原数据库的数据 mysqldump -u [用户名] -p[密码] [数据库名] > database_dump.sql 命令示例: mysqldump -u root -p123456 wd > /opt/wd.sql 2、在新机器上创建数据库 mysql -u [用户名] -p -e "CREATE DATABASE [新数据库名]" 命令示…...
两台主机只能单方向ping通
可能性比较大的原因时ping不通的那台主机安装了个人防火墙。 在共享上网的机器中,出于安全考虑,大部分主机都安装个人防火墙软件。几乎所有个人防火墙软件默认不允许其他机器ping本机。一般的做法是将来自外部的ICMP请求报文滤掉,对本机出去的…...

redis windows 5.0 下载
Redis 简介 Redis 是一个高性能的 key-value 数据库,广泛应用于缓存、消息队列、实时分析等场景。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,并且提供了丰富的操作命令,能够满足各种复杂的数据处理需求。 下载…...

视频转gif怎么转换?6种视频格式转换简单方法分享,附操作截图!
gif动图凭借其简洁而生动的特点,已成为互联网交流中不可或缺的一部分。尽管gif和视频在技术上有所不同,但两者都能以短小的帧展现动作,而gif通常不带声音,具备循环播放的特性。因此,出于创建gif动图、存储更多媒体文件…...

StructRAG简介
StructRAG是一种新型的框架,旨在提升大型语言模型(LLMs)在知识密集型推理任务中的性能。它通过推理时的混合信息结构化机制,根据任务需求以最合适的格式构建和利用结构化知识。 以下是StructRAG的核心组成部分和工作流程ÿ…...
java脚手架系列12-mongoDB
之所以想写这一系列,是因为之前工作过程中有几次项目是从零开始搭建的,而且项目涉及的内容还不少。在这过程中,遇到了很多棘手的非业务问题,在不断实践过程中慢慢积累出一些基本的实践经验,认为这些与业务无关的基本的…...
python四舍五入保留两位小数
在 Python 中,你可以使用内置的 round() 函数来对数字进行四舍五入并保留两位小数。round() 函数有两个参数:要四舍五入的数字和要保留的小数位数。以下是一个简单的示例: # 示例数字 number 3.14159# 四舍五入保留两位小数 rounded_number…...

期权懂|有什么期权交易策略能够稳赚不赔的?
期权小懂小编每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 有什么期权交易策略能够稳赚不赔的? 期权交易具有风险性,没有任何一种策略能够保证稳赚不赔。 以下是一些常见的期权交易策略,虽不能保证盈利&#…...
笔记本脱机状态
先是显示脱机,请尝试其他方法登录 1.按照联想客服,进入高级选项里面,清除两个更新项目,没有卸载成功 2.安装wepe,先是能检测到U盘,但是进不去,然后我淘宝淘帮我做盘,我自己重新装了一…...

Node.js:模块 包
Node.js:模块 & 包 模块module对象 包npm安装包配置文件镜像源 分类 模块 模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元。 简单来说,就是把一个…...

油动无人机动力测试台-60公斤级-Flight Stand 60 ICE
产品简介 通过Flight Stand 60 ICE测试台对内燃机和螺旋桨的拉力,扭矩,转速,燃油流量,温度,功率和螺旋桨效率的测量,帮助用户精准地描述和评估其性能参数,以不断地优化和提升燃油动力系统性能。…...

给grasshopper中的python脚本电池加个标签
ghenv.Component.Message test使用python脚本创建的电池,也可以保存起来。 File – Create User Object...
别被忽悠了 Lua 数组真的也可以从 0 开始索引?
先前我说 Lua 数组从 1 开始不太爽,很多人来纠正我说也可以从 0 开始,比如: local m { [0] 100, 101, 102, 103 }然后访问时 m[0] 也可以正常访问到第 0 个元素,所以 “Lua 给你充分自由度,让你可以从任意下标索引数…...

docker占用磁盘过多问题
我在windows系统上用docker,安装在C盘环境下,我发现C盘占用了大量的空间,查找后发现是docker的映像文件占用的,于是开始清理,中间还踩个坑,记录一下,下次需要的时候方便找。 踩坑 我本想移动映…...
[实时计算flink]使用Python依赖
您可以在Flink Python作业中使用自定义的Python虚拟环境、第三方Python包、JAR包和数据文件等,本文为您介绍如何在Python作业中使用这些依赖。 使用自定义的Python虚拟环境 说明 VVR 4.x仅支持3.7版本的Python虚拟环境,VVR 6.x及以上的版本无此限制&a…...
MySql如何实现分布式锁
本篇我们使用mysql实现一个分布式锁。 环境:mysql8,navicat,maven,springboot2.3.11,mybatis-plus 分布式锁的功能 1,分布式锁使用者位于不同的机器中,锁获取成功之后,才可以对共享资源进行操作 2,锁具有重入的功能:即一个使用…...

「行内揭秘」 SQLynx数据库界的“小众宝藏”?
数据库界的“小众宝藏”?Navicat老大哥地位稳如泰山,但这位“SQLynx”小弟也不容小觑!👀 别看它小众,SQLynx在处理数据库事务上那可是丝毫不含糊,无论你是Windows Linux和Mac,甚至银河麒麟统信都…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...