网站首页 > 技术教程 正文
学习工控知识,就来工控小新
农历十一月初七
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 ... 每日持续更新中
猜你喜欢
- 2024-10-08 5步解决外观数列问题:C语言编程实战
- 2024-10-08 ARM裸机开发步骤和工具使用(SourceInght NotePad++使用)
- 2024-10-08 各种软件自下载 软件自己下载软件
- 2024-10-08 vcredist_x86.exe下载|vcredist_x86.exe 32位官方版
- 2024-10-08 西门子WINCC V6.0-V7.5下载链接汇总,软件不求人!
- 2024-10-08 应用程序无法正常启动0xc0150002解决方案
- 2024-10-08 什么SDK? 什么sd卡质量好
- 2024-10-08 今天为小白讲解一下editplus如何搭建gcc
- 2024-10-08 微软悄然向 Win11/Win10 用户推送 Bing Service 2.0 更新
- 2024-10-08 “最后一个星期”想要熟练C语言,现不现实?如何快速掌握C语言?
你 发表评论:
欢迎- 01-11关于Vmware workstation的网络设置
- 01-11使用VMware Workstation虚拟机安装Windows 10详细教程
- 01-11VMware Workstation 17.5.1 Pro for Windows & Linux - 桌面虚拟化软件
- 01-11VMware? Workstation 17 Pro软件中,如何显示 “我的计算机” 选项卡
- 01-11银河麒麟桌面操作系统安装VMware workstation pro
- 01-11VmwareWorkstation17.6安装windows7x64虚拟机后安装vmtools
- 01-11发布VMware Workstation Pro 17.0稳定版
- 01-11VMware Workstation安装ESXi 7安装篇
- 最近发表
-
- 关于Vmware workstation的网络设置
- 使用VMware Workstation虚拟机安装Windows 10详细教程
- VMware Workstation 17.5.1 Pro for Windows & Linux - 桌面虚拟化软件
- VMware? Workstation 17 Pro软件中,如何显示 “我的计算机” 选项卡
- 银河麒麟桌面操作系统安装VMware workstation pro
- VmwareWorkstation17.6安装windows7x64虚拟机后安装vmtools
- 发布VMware Workstation Pro 17.0稳定版
- VMware Workstation安装ESXi 7安装篇
- 如何安装虚拟机(vmware workstation)
- VMware Workstation之网络配置
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)