当前位置: 首页 > news >正文

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.lryc.cn/news/472854.html

相关文章:

  • 什么是栈溢出
  • 在linux中arm-linux-gcc和/usr/bin/gcc有啥区别
  • 常用环境部署(二十二)——MySQL的数据库迁移到另一个机器上
  • 两台主机只能单方向ping通
  • redis windows 5.0 下载
  • 视频转gif怎么转换?6种视频格式转换简单方法分享,附操作截图!
  • StructRAG简介
  • java脚手架系列12-mongoDB
  • python四舍五入保留两位小数
  • 期权懂|有什么期权交易策略能够稳赚不赔的?
  • 笔记本脱机状态
  • Node.js:模块 包
  • 油动无人机动力测试台-60公斤级-Flight Stand 60 ICE
  • 给grasshopper中的python脚本电池加个标签
  • 别被忽悠了 Lua 数组真的也可以从 0 开始索引?
  • docker占用磁盘过多问题
  • [实时计算flink]使用Python依赖
  • MySql如何实现分布式锁
  • 「行内揭秘」 SQLynx数据库界的“小众宝藏”?
  • 【已解决】【MySQL】IDEA配置数据库 报错 未配置SQL方言 无法使用SQL提示
  • js 通过filter 实现扁平化数据tree
  • Android 开发 调节声音 SeekBar自定义样式
  • UART-通用异步收发器
  • Linux——— 信号
  • 安全见闻-web安全
  • 华为手机卸载系统应用的方法
  • 力扣算法笔记——生成随机数组
  • Anaconda和Pycharm超详细安装教程(2024版本+Win11)
  • 代码随想录:从中后/中前遍历序列构造二叉树
  • 2-134 基于matlab的图像边缘检测