c语言程序设计分数的加减乘除

来源:百度知道 编辑:UC知道 时间:2024/06/14 09:11:44
快!快!急!!各路大侠,帮帮忙!!多谢了

改变数据类型试试
类似这样吧
#include<stdio.h>
double gongbeishu(double b,double d)
{
double i,max;
max=b>d?b:d;
for(i=max;;i++)
if((int)(i)%(int)(b)==0&&(int)(i)%(int)(d)==0)
break;
return i;
}
double gongyueshu(double a,double c)
{
double i,min;
min=a<c?a:c;
for(i=2;i<=min;i++)
if((int)(a)%(int)(i)==0&&(int)(c)%(int)(i)==0)
break;
if(i>min)
i=1;
return i;
}
void main()
{
double a,b,c,d;
double beishu1,beishu2,fenzihe0,fenmu,fenzihe1;
scanf("%lf/%lf %lf/%lf",&a,&b,&c,&d);
beishu1=gongbeishu(b,d)/b;
beishu2=gongbeishu(b,d)/d;
fenzihe0=beishu1*a+beishu2*c;
fenmu=gongbeishu(b,d);
fenzihe1=fenzihe0/gongyueshu(fenzihe0,fenmu);
fenmu=fenmu/gongyueshu(fenzihe0,fenmu);
printf("%lf %lf/%lf\n",a/b+c/d,fenzihe1,fenmu);
}

定义 float x,
x=1/3*4+3