分享免费的编程资源和教程

网站首页 > 技术教程 正文

C语言小白也能写出的约分分数的程序,只需三步,快来试试吧!

goqiw 2024-10-08 06:36:47 技术教程 19 ℃ 0 评论

学习工控知识,就来工控小新

农历十一月初七

2023/12/ 19


往期推荐

2023年12月18日,每天花费一分钟练习C语言:如何用C语言判断一个二叉树是否是对称的

2023年12月17日,每天花费一分钟练习C语言:如何用C语言解决一个经典的动态规划问题:数组跳跃游戏

每日一练

/ Daily Exercises

题目:编写程序,要求用户输入一个分数,然后将其约分为最简式


题目分析

我们来分析这个题目的要求和思路:

  • 题目要求用户输入一个分数,然后将其约分为最简式。分数是由分子和分母组成的,分子和分母都是整数,分母不能为零。

  • 约分的原理是找到分子和分母的最大公约数,然后用分子和分母分别除以最大公约数,得到最简分数。

  • 最大公约数的求法有多种,常用的一种是辗转相除法,即用较大的数除以较小的数,得到余数,然后用较小的数除以余数,重复这个过程,直到余数为零,此时的除数就是最大公约数。

  • 为了方便用户输入和输出,我们可以使用scanf和printf函数,分别从标准输入和标准输出读取和打印数据。

  • 为了保证程序的健壮性,我们需要对用户的输入进行合法性检查,比如分母不能为零,分子和分母不能超过整数的范围,输入的格式是否正确等。



程序展示

#include <stdio.h>


// 定义一个函数,用于求两个整数的最大公约数
int gcd(int a, int b)
{
    // 如果a或b为零,返回另一个数作为最大公约数
    if (a == 0) return b;
    if (b == 0) return a;
    // 如果a和b都不为零,使用辗转相除法求最大公约数
    int r; // 用于存储余数
    while (b > 0)
    {
        r = a % b; // 计算余数
        a = b; // 将b赋值给a
        b = r; // 将余数赋值给b
    }
    return a; // 返回最大公约数
}


int main()
{
    int numerator, denominator; // 定义分子和分母变量
    int g; // 定义最大公约数变量
    printf("请输入一个分数,格式为a/b,其中a和b都是整数,b不为零:\n"); // 提示用户输入
    scanf("%d/%d", &numerator, &denominator); // 从标准输入读取分子和分母
    // 检查分母是否为零,如果是,打印错误信息并退出程序
    if (denominator == 0)
    {
        printf("错误:分母不能为零!\n");
        return 1;
    }
    // 求分子和分母的最大公约数
    g = gcd(numerator, denominator);
    // 用分子和分母分别除以最大公约数,得到最简分数
    numerator /= g;
    denominator /= g;
    // 打印最简分数
    printf("最简分数为:%d/%d\n", numerator, denominator);
    return 0;
}


程序测试

这个程序在VC6.0的环境下运行正常,可以处理各种合法和非法的输入,输出正确的结果。

当我们输入一个8/12的分式时,经过运算得到最简式为2/3


源代码获取

#软件下载通道#



我用夸克网盘分享了「20231219」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。

链接:https://pan.quark.cn/s/c9f87e94e115

(链接和提取码建议复制粘贴,手动输入容易出现错误)

#支持一下#

分享整理,测试发布不易 如果您方便的话可以帮忙点一下↓↓

谢谢大家!



下期题目

从键盘中任意一个大写字母,要求它在26个字母表中的位置和其后面的第四个字母



点赞加关注,学习不迷路

微信公众号|工控小新

EPLAN电气绘图、TIA博图基础 、CAD、C语言教学、单片机基础、三菱PLC ... 每日持续更新中

#头条创作挑战赛#

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表