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,甚至银河麒麟统信都…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
