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语言中的三元运算符是一种非常有用的工具,它允许开发者在一行代码中完成条件判断和值的选择。尽管它功能强大,但应该谨慎使用,以保持代码的清晰和简洁。

 

 

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

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

相关文章

MS01SF1 精准测距UWB模组助力露天采矿中的人车定位安全和作业效率提升

在当今矿业行业&#xff0c;随着全球对资源需求的不断增加和开采难度的逐步提升&#xff0c;传统的作业方式面临着越来越多的挑战。露天矿山开采&#xff0c;因其大规模的作业环境和复杂的地形特点&#xff0c;面临着作业人员的安全风险、设备调度的高难度以及资源利用率低下等…

Spring Security 门神中的战斗机

Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity 来做安全框架。 小项目有Shiro的比较多&#xff0c;因为相比与SpringS…

CentOS 7 下升级 OpenSSL

升级openssh,下载&#xff1a;https://download.csdn.net/download/weimeilayer/89935114 上传到服务器&#xff0c;然后执行命令 rpm -Uvh *.rpm --nodeps --force安装依赖 yum -y install gcc perl make zlib-devel perl-CPAN下载安装包&#xff1a;https://github.com/ope…

unordered_map、unordered_set 底层原理及其相关面试题

目录 unordered_map、unordered_set的底层原理 哈希表的实现 unordered_map 与map的区别&#xff1f;使用场景&#xff1f; unordered_map、unordered_set的常用函数 unordered_map map区别和联系 unordered_map、unordered_set的底层原理 unordered_map的底层是一个防冗余…

若依框架部署到服务器后头像资源访问404

排错过程 第一开始以为是代理出问题了 官网给出的解决方案 第一种是用代理后端接口&#xff0c;第二种是重写路径直接访问静态文件 接口通过捕获profile开头的路径/profile/avatar…&#xff0c;转为/home…/avatar找到我们在该路径下的文件 但是我想了一下&#xff0c;我ngin…

Linux——五种IO模型

目录 一IO基本理解 二五种IO模型 1五种IO模型示意图 2同步IO和异步IO 二非阻塞IO 1fcntl 2实现非阻塞IO 三多路复用 1select 1.1定位和作用 1.2介绍参数 1.3编写多路复用代码 1.4优缺点 2poll 2.1作用和定位 2.2介绍参数 2.3修改select代码 3epoll 3.1介绍…

【隐私计算篇】全同态加密应用场景案例(隐私云计算中的大模型推理、生物识别等)

1.题外话 最近因为奖项答辩&#xff0c;一直在忙材料准备&#xff0c;过程非常耗费时间和精力&#xff0c;很难有时间来分享。不过这段时间虽然很忙碌&#xff0c;但这期间有很多新的收获&#xff0c;特别是通过与领域内专家的深入交流和评审过程&#xff0c;对密码学和隐私计算…

【汇编语言】第一个程序(四)—— 谁在幕后启动程序 : 探讨可执行文件的装载与执行

文章目录 前言1. 可执行文件的加载与运行1.1 DOS中的程序加载过程1.2 问题1&#xff1a;谁加载了1.exe&#xff1f;1.3 问题2&#xff1a;程序运行结束后的返回过程1.4 操作系统的外壳1.5 回答问题1和问题21.6 汇编程序执行的完整历程 2. 使用Debug加载与跟踪1.exe2.1 Debug的加…

Unreal Engine 5 C++(C#)开发:使用蓝图库实现插件(一)认识和了解Build.cs

目录 引言 一、创建一个C插件TextureReader插件 二、Build.cs文件 三、ModuleRules 四、TextureReader插件的构造 4.1ReadOnlyTargetRules的作用 4.2TextureReaderd的构造调用 4.3设置当前类的预编译头文件的使用模式 4.4PublicIncludePaths.AddRange与PrivateInclude…

SELS-SSL/TLS

一、了解公钥加密&#xff08;非对称加密&#xff09; 非对称加密中&#xff0c;用于加密数据的密钥与用于解密数据的密钥不同。私钥仅所有者知晓&#xff0c;而公钥则可自由分发。发送方使用接收方的公钥对数据进行加密&#xff0c;数据仅能使用相应的私钥进行解密。 你可以将…

STM32FreeRTOS 使用QSPI驱动nandFlash

STM32FreeRTOS 使用QSPI驱动nandFlash 不清楚为什么STM32同时打开3个以上的音频文件时会出现播放问题&#xff0c;所以更换方案。因为SRAM的内存空间过小&#xff0c;用于存储音频文件不适合&#xff0c;所以使用大小为128MByte的nandFlash。 nandFlash使用华邦的W25N01GVZEI…

vscode的一些使用心得

问题1&#xff1a;/home目录空间有限 连接wsl或者remote的时候&#xff0c;会在另一端下载一个.vscode-server&#xff0c;vscode的插件都会安装进去&#xff0c;导致空间增加很多&#xff0c;可以选择更换这个文件的位置 参考&#xff1a;https://blog.csdn.net/weixin_4389…

1Panel应用商店开源软件累计下载突破200万次!

2024年10月23日&#xff0c;1Panel应用商店内开源软件累计下载突破200万次。 1Panel&#xff08;github.com/1Panel-dev/1Panel&#xff09;是一款现代化、开源的Linux服务器运维管理面板&#xff0c;它致力于通过开源的方式&#xff0c;帮助用户简化建站与运维管理流程。 为…

基于MATLAB多参数结合火焰识别系统

一、课题介绍 本设计为基于MATLAB的火焰烟雾火灾检测系统。传统的采用颜色的方法&#xff0c;误识别大&#xff0c;局限性强。结合火焰是实时动态跳跃的&#xff0c;采用面积增长率&#xff0c;角点和圆形度三个维度相结合的方式判断是否有火焰。该设计测试对象为视频&#xf…

利用摄像机实时接入分析平台LiteAIServer视频智能分析软件进行视频监控:过亮过暗检测算法详解

视频监控作为一种重要的安全和管理工具&#xff0c;广泛应用于各个领域&#xff0c;如安全监控、交通监管、员工监管、公共场所监控等。然而&#xff0c;在实际应用中&#xff0c;视频监控系统经常面临各种挑战&#xff0c;其中之一便是视频画面过亮或过暗的问题。过亮过暗检测…

python画图|坐标轴比例设置方法

【1】引言 在前序学习进程中&#xff0c;我们通过ax.set_box_aspect()函数掌握了坐标轴等比例设置方法。 担当我在回顾以前的学习文章时&#xff0c;发现ax.axis()函数也可以设置坐标轴比例&#xff0c;比如下述文章&#xff0c;文章可通过点击链接直达&#xff1a; python画…

[前端][基础]JavaScript

1&#xff0c;JavaScript简介 JavaScript 是一门跨平台、面向对象的脚本语言&#xff0c;而Java语言也是跨平台的、面向对象的语言&#xff0c;只不过Java是编译语言&#xff0c;是需要编译成字节码文件才能运行的&#xff1b;JavaScript是脚本语言&#xff0c;不需要编译&…

用于文档理解的局部特征

本文介绍了一种名为DocFormerv2的多模态Transformer模型&#xff0c;它专为视觉文档理解&#xff08;VDU&#xff09;而设计。该模型可以处理视觉、语言和空间特征&#xff0c;利用编码器-解码器架构&#xff0c;并通过不对称地使用新颖的无监督任务进行预训练&#xff0c;以促…

Chromium127编译指南 Linux篇 - 额外环境配置(五)

引言 在成功获取 Chromium 源代码后&#xff0c;接下来我们需要配置适当的编译环境&#xff0c;以便顺利完成开发工作。本文将详细介绍如何设置 Python 和相关的开发工具&#xff0c;以确保编译过程无碍进行。这些配置步骤是开发 Chromium 的必要准备&#xff0c;确保环境设置…