编写C++程序“double的分数形式”。
创始人
2024-12-05 04:30:16
0

下面是一个示例程序,用于将一个浮点数表示为分数形式:

#include 
#include 

// 求最大公约数的函数
int gcd(int a, int b) {
    if (b == 0) {
        return a;
    }
    return gcd(b, a % b);
}

// 将浮点数转换为分数形式
void toFraction(double num) {
    // 设置分母的最大值
    const int MAX_DENOMINATOR = 1000000;

    // 将浮点数乘以最大分母,得到一个整数分子
    int numerator = round(num * MAX_DENOMINATOR);

    // 简化分数
    int gcdValue = gcd(numerator, MAX_DENOMINATOR);
    numerator /= gcdValue;
    int denominator = MAX_DENOMINATOR / gcdValue;

    // 输出分数形式
    std::cout << numerator << "/" << denominator << std::endl;
}

int main() {
    double num;

    std::cout << "请输入一个浮点数: ";
    std::cin >> num;

    std::cout << "分数形式为: ";
    toFraction(num);

    return 0;
}

这个程序通过将浮点数乘以一个大的分母,得到一个整数分子,然后对分子和分母进行最大公约数运算来简化分数形式。最后,将简化后的分子和分母输出为分数形式。

示例输出:

请输入一个浮点数: 0.75
分数形式为: 3/4

请注意,由于浮点数的精度限制,当输入的浮点数无法精确表示为分数时,输出的分数可能不是完全准确的分数形式。

相关内容

热门资讯

微扑克辅助挂!微扑克辅助多少钱... 1、微扑克辅助挂!微扑克辅助多少钱,微扑克发牌机制(总是存在有挂);详细教程。2、微扑克透视辅助简单...
WePoKe外 挂!wepok... WePoKe外 挂!wepoke软件能玩,wepower软件靠谱,2025新版总结(有挂解说);we...
一分钟揭秘!兴动互娱辅助软件(... 一分钟揭秘!兴动互娱辅助软件(透视辅助)其实真的是有挂(2024已更新)(哔哩哔哩)1)兴动互娱辅助...
三分钟科普!小白大作战棋牌有挂... 三分钟科普!小白大作战棋牌有挂吗,pokerrrr2一直有挂,新2025版(有挂黑科技)1、任何小白...
微扑克全自动机器人!微扑克辅助... 微扑克全自动机器人!微扑克辅助真的,微扑克wpk真的有辅助,黑科技教程(有挂脚本)1、让任何用户在无...
wepower有外 挂!wop... wepower有外 挂!wopoker手机辅助,wepoke能赢嘛,教你攻略(有挂黑科技);支持多人...
程序员教你!广西山水手机麻将有... 程序员教你!广西山水手机麻将有挂吗(透明挂)竟然是有挂(2020已更新)(哔哩哔哩);1、广西山水手...
5分钟辅助!人皇大厅牛牛怎么辅... 5分钟辅助!人皇大厅牛牛怎么辅助,wePOke一贯是真的有挂,可靠教程(有挂工具)一、人皇大厅牛牛怎...
微扑克有辅助挂!微扑克ai辅助... 一、微扑克简介了解软件请加微:136704302微扑克是一款在线扑克游戏平台,玩家可以在平台上进行多...
研究成果!闲玩暗宝外挂(辅助)... 研究成果!闲玩暗宝外挂(辅助)原来是有挂(2024已更新)(哔哩哔哩)该软件可以轻松地帮助玩家将闲玩...