C语言编程问题:分数计算器分数运算.编写一个程序,首先在控制台窗口打印分数四则运算菜单,然后根据用户选择分别输入两个分数的分子和分母,在控制台窗口显示这两个分数经过所选运算
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 19:05:15
C语言编程问题:分数计算器分数运算.编写一个程序,首先在控制台窗口打印分数四则运算菜单,然后根据用户选择分别输入两个分数的分子和分母,在控制台窗口显示这两个分数经过所选运算
C语言编程问题:分数计算器
分数运算.编写一个程序,首先在控制台窗口打印分数四则运算菜单,然后根据用户选择分别输入两个分数的分子和分母,在控制台窗口显示这两个分数经过所选运算后的分子和分母.要求程序应能处理用户输入分母为0的情况,同时要能够多次计算,直到用户输入退出为止,输出结果要输出最简分数形式.运行效果如下.
分数运算器:
------------------------------------------
\x09[1] 加法\x09[2] 减法
\x09[3] 乘法\x09[4] 除法
\x09[0] 退出
------------------------------------------
请输入你选择的菜单(0--4):a
Error:菜单中没有本选项,请重新输入!
请输入你选择的菜单(0--4):1
请输入第一个分数的分子和分母:1 6
请输入第二个分数的分子和分母:1 3
1/6 + 1/3 = 1/2
请用C语言编写这个题目的程序.(不要用C++写)
C语言编程问题:分数计算器分数运算.编写一个程序,首先在控制台窗口打印分数四则运算菜单,然后根据用户选择分别输入两个分数的分子和分母,在控制台窗口显示这两个分数经过所选运算
#include<stdio.h>
int fm,f;
int tf(int a,int b,int m,int n)
{
\x05int i,s;
\x05for(i=b>n?b:n;;i++)
\x05{
\x05\x05if(i%b==0&&i%n==0)
\x05\x05\x05break;
\x05}
\x05fm=i;
\x05if(f)
\x05\x05s=(i/b*a+i/n*m);
\x05else
\x05\x05s=(i/b*a-i/n*m);
\x05return s;
}
int hj(int t,int s)
{
\x05int i;
\x05for(i=t<s?t:s;i>=1;i--)
\x05{
\x05\x05if(t%i==0&&s%i==0)
\x05\x05{
\x05\x05\x05t/=i;
\x05\x05\x05s/=i;
\x05\x05}
\x05}
\x05fm=s;
\x05return t;
}
main()
{
\x05int a,b,m,n,t,s,fz,r,c,ff=0;
\x05char k;
\x05printf("------------------------------------------\n");
\x05printf("\x05[1] 加法\x05[2] 减法\n");
\x05printf("\x05[3] 乘法\x05[4] 除法\n");
\x05printf("\x05[0] 退出\n");
\x05printf("------------------------------------------\n");
\x05do{
\x05\x05printf("请输入你选择的菜单(0--4):");
\x05\x05k1:
\x05\x05scanf("%d",&c);
\x05\x05if(c<0||c>4)
\x05\x05{\x05printf("菜单中没有本选项,请重新输入!");
\x05\x05\x05fflush(stdin);
\x05\x05\x05goto k1;
\x05\x05\x05getchar();
\x05\x05}
\x05\x05printf("请输入第一个分数的分子和分母:");
\x05\x05scanf("%d %d",&a,&b);
\x05\x05printf("请输入第二个分数的分子和分母:");
\x05\x05scanf("%d %d",&m,&n);
\x05\x05switch(c)
\x05\x05{
\x05\x05\x05case 0:return 0;break;
\x05\x05\x05case 1:f=1;t=tf(a,b,m,n);s=fm;k='+';break;
\x05\x05\x05case 2:f=0;t=tf(a,b,m,n);s=fm;k='-';break;
\x05\x05\x05case 3:t=a*m;s=b*n;k='*';break;
\x05\x05\x05case 4:t=a*n;s=b*m;k='/';break;
\x05\x05}
\x05\x05fz=hj(t,s);
\x05\x05printf("%d/%d%c%d/%d=%d/%d\n",a,b,k,m,n,fz,fm);
\x05}while(1);
}
自己编的!好累!