首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

可计算分数加减乘除的代码

2012-04-24 
求一个可计算分数加减乘除的代码int js (int a,int b,char ch,int c,int d){int x,y,r,z,wxa*d+b*cyb*

求一个可计算分数加减乘除的代码
int js (int a,int b,char ch,int c,int d)
{
 int x,y,r,z,w;
 x=a*d+b*c;
 y=b*d;
 r=x%y;
 z=x;
 w=y;
 if(r!=0)
 {
  z=w;
  w=r;
  r=z%w;
 }
 else
 {
 printf("%d/%d\n",x/w,y/w);
 }
 return 0;

这是我写的如下,运行不出结果啊!!!!!~~~求解释求解释!!

[解决办法]
以下代码已验证

C/C++ code
int zg(int x, int y)   //求最大公约数{    int temp = x < y ? x : y;    int flag;    for (int i = 1; i <= temp; i++)    {        if (x%i == 0 && y%i == 0)        {            flag = i;        }    }    return flag;}//a 第一个数的分子//b 第一个数的分母//c 第二个数的分子//d 第二个数的分母int js (int a, int b, int c, int d, char ch){    int x, y , m, n;    int iResult;    if (ch == '+')    {        x = a * d;        y = b * d;        m = c * b;        n = d * b;         iResult =  (x + m)/y;        int i = zg(x + m, y);                printf("%d/%d", (x + m)/i, y/i);    }    else if (ch == '-')    {        x = a * d;        y = b * d;        m = c * b;        n = d * b;          iResult = (x - m)/y;        int i = zg(x - m > 0 ? x - m : m - x, y);                printf("%d/%d", (x - m)/i, y/i);    }    else if (ch == '*')    {        iResult = (a * c)/(b * d);        int i = zg(a * c, b * d);                printf("%d/%d", (a * c)/i, (b * d)/i);    }    else if (ch == '/')    {        iResult = (a * d)/(b * c);        int i = zg(a * d, b * c);                printf("%d/%d", (a * d)/i, (b * c)/i);    }        return 0;} 

热点排行