二.c++练习中常出错的点集合

news/2025/2/27 21:53:46/文章来源:https://www.cnblogs.com/suyaxuan/p/18742101

1.float和double间的互相转换及int与double的互相转换
一.float和double互相转换。不过可能会有损精度(因为double精度更大,所以定义浮点数一般使用double)
转换方式:
1.可以直接赋值,下面是搜算到的相关代码:
// double 转 float(可能丢失精度)
double d_val = 3.1415926535;
float f_val = static_cast(d_val); // 截断为 6-7 位有效数字
2.使用atof()、strtod()类的函数:
atof()是将float转为double,strtod()则是将double转为float。
相关代码:
// float转double
float f_val = 7.5f;
double d_val = atof(std::to_string(f_val).c_str());
// double 转 float
double d_val = 9.87654321;
float f_val = static_cast(strtod("9.87654321", nullptr));
二.int与double的互相转换
转换方式:
1.直接用int()函数来强制转换:
double s;
cout << int(s);
2.直接将int赋值给double:
int a = 1;
double b = a; //将1变成1.0
3.可以使用四舍五入函数来转换:
double s;
int a = round(s); //四舍五入
int b = floor(s); //向下取整
int c = ceil(s); //向上取整
(后续会讲关于四舍五入函数的使用场景)

2.四舍五入类的函数
一.四舍五入:
比较少用,如果遇到模拟计算机的题可能需要使用。
使用下列代码,输出的数为2,如果s=1.4,则输出来的数为1。
double s=1.5;
int a = round(s);
二.向下取整:
遇到例如:缝裤子时,布料还剩下一点,但是不够做一条新裤子,则需要向下取整,因为不能做一条半成品裤子给顾客。
使用下列代码,输出的数为1,即使s=1.9,输出来的数仍为1。
double s=1.5;
int a = floor(s);
三.向上取整:
在遇到例如:最多能倒多少杯水(不足一杯算一杯)的题时,需要向上取整,因为半杯也是水,也要算作一杯。
使用下列代码,输出的数为2,即使s=1.1,输出来的数也为2。
double s=1.5;
int a = ceil(s);

3.关于sort排序的注意事项
在运用sort排序时,需注意数组的定义:
若数组定义过小,则会导致无法正常排序。
若数组定义过大,则会影响排序,因为数组过大后会有0来补位,排序时会把0拍到第一位(除了数组中有负数以外),从而导致排序错误,不能进行下一步编程。

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

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

相关文章

[Black Watch 入群题]PWN(栈迁移)

先检查一下保护,32位的分析一下代码,发现buf距离ebp为0x18(24),但是read只溢出0x20(32),也就是只溢出8个字节,刚好覆盖到ret。 第一个read读取0x200到s(.bss段)两个write会打印m1和m2,点击m1,m2查看因为溢出不够,这时候我们可以考虑栈迁移expfrom pwn import * f…

WC Java 实现

一.来源 WC Java 实现(Pramy) https://www.cnblogs.com/pramy/p/9607743.html 二.运行环境及运行结果 运行环境:Visual Studio Code 运行结果截图:* 三.主要问题 1.异常处理不够详细: 在处理文件时,如果文件不存在或无法读取,程序会抛出异常,但没有提供详细的错误信息或…

docker实现的基本原理

Docker 实现容器的基本原理依赖于 Linux 内核的三大核心机制:命名空间(Namespaces)、控制组(cgroups) 和 联合文件系统(UnionFS),也是 Docker 能够出现的最重要原因。 1. 命名空间(Namespaces) 作用:实现资源的隔离,使容器内的进程无法感知或干扰宿主机的其他进程或…

将DeepSeek接入人类大脑会怎样??

昨天在与同事聊起最近大火的DeepSeek, 突然,有一个不切实际的想法,如果DeepSeek或人工智能AI能以某种形式接入人类大脑, 比如,通过芯片不侵入式连接大脑 或者 外带什么眼镜、 隐形眼镜之类的, 能人类有DeepSeek一样的知识量以及响应速度,那得多好,整个世界、人类将会变…

gh-ost工具介绍及使用

💖简介 gh-ost 是一款由GitHub开发的在线DDL(Online Data Definition Language)变更工具,专门用于MySQL数据库。它允许在不锁定表的情况下执行数据库模式变更,从而避免了传统ALTER TABLE命令可能带来的长时间锁表问题,这对于高可用性要求严格的生产环境尤为重要。 它通过…

[算法]KD树

KD树,你看着他好几个维度不明白,但实际上非常简单 \(K\)指维度 因此他可以在二维(多维)平面内进行搜索!!! 1.二维 1.1 建树 对于每一层,我们使用轮转法进行建树 什么意思呢?比如二维,如果\(x\)层为一维(横坐标),则\((x+1)\)层为二维(纵坐标) 确定好维数,接下来…

事务的ACID原则

atomic原子性,事务包含一批读写操作要么都提交,要不都回滚,在并发状态下另一个线程看到的这个线程操作的事务一定是完整的,要不都没看见,要么都看见,不存在看见一半的情况。 consiste一致性,对数字的一组特定的约束条件必须成立,例如转账业务中的进账和出账必须能相抵。…

Python Flask Web应用的二次开发

我选择了一个简单的Python Flask Web应用,它是一个简易的任务管理系统,能实现任务的添加和查看,但存在不少可优化之处。 1.来源 这个简易的任务管理系统是某位学长的开源项目。原作者的目的是提供一个基础的任务管理功能示例,方便开发者学习Flask框架的基本使用。 2.运行环…

Vulnhub-DC-9靶机-SQL注入拿到账户+利用端口敲门连接ssh+信息泄露利用root脚本追加提权

一、环境搭建 选择扫描虚拟机选择靶机路径如果出现以下信息如下修改,修改和虚拟机一样的版本二、信息收集 扫ip nmap -sn 192.168.108.0/24得到靶机ip:192.168.108.143扫开放端口 nmap -p 1-65535 192.168.108.143只开放了两个端口信息如下 22/tcp filtered ssh #filtered是“…

SemanticKernel之使用Plugins

Plugins在SK中是一个神奇的功能。我们说大语言模型具有不确定性,我们的代码是确定性的,而Plugins有把这种不确定性转成确定性能功能。下面的例子是一个通过自然语言实现购买的案例,客户可以通过文字或语音来输入自然语言,<ItemGroup><PackageReference Include=&q…

Ubuntu22.04 LTS安装流程

1. 选择grub2. 选择语言3. 不更新安装4. 选择键盘的类型5. 选择需要安装的ubuntu版本6. 配置网络建议自动获取7. 配置代理可以直接跳过8. 配置ubuntu软件源可使用默认9. 使用默认的分区方式10. 使用默认的磁盘分配策略即可11. 设置服务器名称及用户密码12. 跳过安装ubuntu pro1…

SemanticKernel之使用结构化Prompt

体之前说过结构化Prompt,这是一个具体案例的使用,本例是把公众号上中文技术文章翻译成选择的语言。基本思路是用户输入文章的url,系统用Playwright读取html内容,然后利用SemanticKernel的OpenAIChatCompletionService功能,按照提示词翻译,最后用Playwright把结果发送到Qi…