实现一个拆分实数的整数和小数部分的函数指针

#include <stdio.h>

// 定义常量
#define LARGE_NUMBER 1000000000 
// 定义一个常量,方便后续使用

void splitFloatIntoParts(float x, int *intpart, float *fracpart); 
// 声明一个分割浮点数为整数和小数部分的函数

int main() 
// 主函数开始
{
    float x, fracpart; 
    // 定义浮点数 x 和用于存储小数部分的浮点数 fracpart
    int intpart; 
    // 定义用于存储整数部分的整型变量 intpart

    scanf("%f", &x); 
    // 从用户输入读取一个浮点数到 x
    if (scanf("%f", &x)!= 1) {  // 错误处理,如果输入不是一个有效的浮点数
        printf("Invalid input. Please enter a valid float.\n"); 
        // 输出错误提示
        return 1; 
        // 以错误状态结束程序
    }
    splitFloatIntoParts(x, &intpart, &fracpart); 
    // 调用分割函数处理 x,并将结果存储到 intpart 和 fracpart
    printf("The integer part is %d\n", intpart); 
    // 输出整数部分
    printf("The fractional part is %g", fracpart); 
    // 输出小数部分
    return 0; 
    // 主程序结束,返回 0 表示正常结束
}

void splitFloatIntoParts(float x, int *intpart, float *fracpart) 
// 分割函数的定义
{
    if (x < 1) { 
        // 如果 x 小于 1
        *intpart = 0; 
        // 将整数部分设置为 0
        *fracpart = x; 
        // 将小数部分设置为 x 本身
        return; 
        // 结束函数
    }

    float xiaoShu = 0; 
    int n = LARGE_NUMBER; 
    // 初始化一些变量

    while ((int)x / n!= 0) { 
        // 找到一个合适的 n 值,使得 x 除以 n 不为 0
        break;
    }
    for (int i = 0; i < 9; i++) { 
        // 进行一个循环
        if (x - (float)n <= 1) { 
            // 如果 x 与 n 的差值小于等于 1
            break;
        }
        n += 1; 
        // 递增 n
    }
    *fracpart = x - (float)n; 
    // 计算并设置小数部分
    *intpart = x - *fracpart; 
    // 计算并设置整数部分
}zhenshu

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

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

相关文章

轻松寄快递,推荐一款寄快递优惠的小程序!

不管我们经不经常寄快递&#xff0c;我们总是要处理寄快递收快递的事情&#xff0c;可是我们不想这么麻烦来处理寄快递的事情&#xff0c;怎么办呢&#xff1f;这里推荐大家使用闪侠惠递来寄快递&#xff0c;因为使用闪侠惠递寄快递&#xff0c;不仅是带给你便宜的寄快递价格&a…

linux进阶高级配置,你需要知道的有哪些(10)-远程访问

1、ssh协议的功能 为客户机提供安全的shell环境&#xff08;字符界面&#xff09;&#xff0c;用于远程管理 2、openssh的服务说明 服务名&#xff1a;sshd 重启服务&#xff1a;systemctl restart sshd 主配置文件&#xff1a;/etc/ssh/sshd/_config 端口号&#xff1a;tcp 2…

代码随想录第五十一天|最长递增子序列、最长连续递增序列、最长重复子数组

题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09;

【数据库原理及应用】期末复习汇总高校期末真题试卷11

试卷 一、填空题(每题 1 分&#xff0c;共10 分)    1. 数据库管理技术的发展经历了三个阶段&#xff1a;人工管理阶段&#xff0c;文件系统阶段和__________阶段。 2.实体完整性约束规定__________的取值不能为空值。 3. 计算机系统有三类安全性问题&#xff0c;即_____…

企业使用合同档案管理系统软件有什么好处

使用合同档案管理系统软件可以带来以下好处&#xff1a; 1. 提高效率&#xff1a;合同管理软件可以自动化合同流程&#xff0c;包括创建、审批、签署和归档等。通过自动化&#xff0c;可以节省大量时间和精力&#xff0c;提高工作效率。 2. 降低风险&#xff1a;玖拓档案合同管…

重构四要素:目的、对象、时机和方法

目录 1.引言 2.重构的目的:为什么重构(why) 3.重构的对象:到底重构什么(what) 4.重构的时机:什么时候重构(when) 5.重构的方法:应该如何重构(how) 6.思考题 1.引言 一些软件工程师对为什么要重构(why)、到底重构什么(what)、什么时候重构(when)应该如何重构(how)等问题的…

3.使用uView让tabbar更优雅

文章目录 1. 使用uView让tabbar更优雅1.1. 怎么才优雅&#xff1f;1.2. uView的tabbar合适吗&#xff1f;1.3. 引入项目过程1.3.1. 修改pages.json1.3.2. 把demo里面的pages先拷贝过来1.3.3. 引入tabbar的图片1.3.4. 运行 1.4. 我们自己的项目适配 1. 使用uView让tabbar更优雅 …

【算法】滑动窗口——最小覆盖子串

本节博客是对“最小覆盖子串”题目由暴力求解到滑动窗口的思路解析&#xff0c;有需要借鉴即可。 目录 1.题目2.滑动窗口解法3.总结 1.题目 题目链接&#xff1a;LINK 这个题目是困难难度&#xff0c;感觉是一个中等题目的感觉。 首先我肯定想到的是暴力求解的方法&#xff…

C++:STL-string

前言 本文主要介绍STL六大组件中的容器之一&#xff1a;string&#xff0c;在学习C的过程中&#xff0c;我们要将C视为一个语言联邦&#xff08;摘录于Effective C条款一&#xff09;。如何理解这句话呢&#xff0c;我们学习C&#xff0c;可将其分为四个板块&#xff1b;分别为…

数据降维-主成分分析PCA

1.背景&#xff1a; 在以前计算能力还很弱的年代&#xff0c;我们要分析经济数据是一件很困难的事情&#xff0c;所以我们需要对指标特征进行降维&#xff1b; 2.数据降维的意义&#xff1a; 一般我们降维的特征数据彼此之间是存在一定的相关性的&#xff0c; 二维降至一维…

2024年区块链、信号处理与航空航天国际学术会议(ICBSPA 2024)

2024年区块链、信号处理与航空航天国际学术会议&#xff08;ICBSPA 2024) 2024 International Conference on Blockchain, Signal Processing, and Aerospace 一、【会议简介】 随着科技的飞速发展&#xff0c;区块链、信号处理与航空航天等领域的交叉融合正成为推动科技进步的…

【代码随想录】【动态规划】背包问题 - 完全背包

完全背包 模板&#xff1a;完全背包问题 问题描述 完全背包问题与01背包问题唯一的区别在于&#xff1a; 在01背包中&#xff1a;每个物品只有一个&#xff0c;要么放入背包&#xff0c;要么不放入背包在完全背包中&#xff1a;每个物品有无限多个&#xff0c;可以不放入背…

2d激光slam中的常用地图介绍

2d激光slam中最常用的是栅格地图&#xff0c;用于保存建图后的地图。实际应用中的栅格地图也有很多类型和不同用处&#xff0c;下面根据使用经验一一介绍。 局部子地图&#xff0c;由一系列小栅格地图组成&#xff0c;每个栅格地图负责记录保存局部轨迹&#xff0c;通常用三个局…

卓豪Zoho CRM怎么收费?多少钱一年?

卓豪Zoho CRM作为一款功能强大且高度可定制的企业级客户关系管理系统&#xff0c;其收费标准因版本不同而有所差异&#xff0c;旨在满足不同规模及需求的企业。Zoho CRM提供多种套餐选择&#xff0c;包括但不限于免费版、标准版、专业版、企业版以及旗舰版。每种版本都包含了核…

基于Springboot的大学生平时成绩量化管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的大学生平时成绩量化管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三…

Docker Dockerfile如何编写?

Dockerfile 是一个用来构建镜像的文本文件&#xff0c;文本内容包含了一条条构建镜像所需的指令和说明。 1.指令说明 FROM&#xff0c;构建镜像基于哪个镜像 MAINTAINER&#xff0c;镜像维护者姓名或邮箱地址 RUN&#xff0c;构建镜像时运行的指令 CMD&#xff0c;运行容器时执…

娱乐营销的新玩法:Kompas.ai如何让内容更加趣味化

在数字化时代&#xff0c;内容营销已成为品牌与消费者沟通的重要桥梁。然而&#xff0c;随着信息的爆炸式增长&#xff0c;用户的注意力越来越分散&#xff0c;传统的营销方式已经难以吸引用户的兴趣。在这种背景下&#xff0c;娱乐营销应运而生&#xff0c;它通过将娱乐元素融…

数据库和Redis数据不一致的问题

目录 1. 延迟双删策略 2. 使用消息队列&#xff08;MQ&#xff09; 3. 引入分布式锁 4. 先更新数据库&#xff0c;再删除缓存 5. 设置缓存过期时间 6. 使用Redis事务 7. 监控和报警机制 数据库和Redis数据不一致的问题&#xff0c;主要源于Redis和数据库的异步写入机制。…

【设计模式】桥接模式-学习记录

概念 桥接模式是一种结构型设计模式&#xff0c;其UML图像一座桥&#xff0c;通过抽象部分与实现部分分离&#xff0c;使它们可以独立变化&#xff0c;从而达到降低系统低耦合的目的。桥接模式只要目的是通过组合建立两个类之间的联系&#xff0c;而不是继承的方式。 基本结构…

华东政法大学公布2024《负面清单期刊目录》,附目录

近日&#xff0c;华东政法大学公布2024《负面清单期刊目录》&#xff0c;包括《齐齐哈尔大学学报(哲学社会科学版)》《景德镇学院学报(社科)》《九江学院学报(社科)》《北京印刷学院学报》《江西电力职业技术学院学报》《中国多媒体与网络教学学报》《吉林省教育学院学报》《开…