#include
using namespace std;void func(int a,int b,int x,int y);int main(){ int a,b,x,y; cout<<"请输入第一个数分子"<
经过上机验证没有问题哦 百度最近的格式总是会乱 格式调了半天…………好累啊
#include
//用于求最小公倍数的函数
int lcm(int m, int n)
{
int i,t;
if(m
t=m;
m=n;
n=t;
}
for(i=m;i>=1;i++)
if(i%m==0&&i%n==0)//判断整除是这么判断的
break;
return i;
}
//用于返回比较分数结果的子函数
int cmp(int x,int y,int z,int w)
{
int symbol;
int gongbeishu;//最小公倍数
int fenzi1;//通分后的第一个分子
int fenzi2;//通分后的第二个分子
if(y==w)
{
if(x>z)
symbol=1;
else if(x==z)
symbol=0;
else
symbol=-1;
}
else
{
gongbeishu=lcm(y,w);
fenzi1=x*gongbeishu/y;
fenzi2=z*gongbeishu/w;
if(fenzi1>fenzi2)
symbol=1;
else if(fenzi1==fenzi2)
symbol=0;
else
symbol=-1;
}
return symbol;
}
int main (void)
{
int a;//第一个数字的分子
int b;//第一个数字的分母
int c;//第二个数字的分子
int d;//第二个数字的分母
int s;
printf("input 第一个数字的分子:\n");
scanf("%d",&a);
printf("input 第一个数字的分母:\n");
scanf("%d",&b);
printf("input 第二个数字的分子:\n");
scanf("%d",&c);
printf("input 第二个数字的分母:\n");
scanf("%d",&d);
s=cmp(a,b,c,d);
switch(s)
{
case 1:
printf("第一个分数%d/%d大于第二个分数%d/%d\n",a,b,c,d);
break;
case 0:
printf("第一个分数%d/%d等于第二个分数%d/%d\n",a,b,c,d);
break;
case -1:
printf("第一个分数%d/%d小于第二个分数%d/%d\n",a,b,c,d);
break;
default:
printf("something is wrong!");
}
return 0;
}
int compareFenshu(int iFenzi1, int iFenmu1, int iFenzi2, int iFenmu2)
// 参数: 第一个分数的分子, 分母, 第二个分数的分子,分母
{
if(iFenmu1 != iFenmu2) // 先判断分母是否相等, 如果不相等,先通分
{
iFenzi1*=iFenmu2; // 不必考虑是否是最小公倍数, 分子分别乘以对方的分母
iFenzi2*=iFenmu1;
}// 因为函数只在乎比较大小, 所以通分之后分母是多少不必计算
if(iFenzi1>iFenzi2) return 1;
if(iFenzi1
}
干嘛要超过25行啊, 12行能解决问题的, 多了累赘了.
原题是?
分数要自己定义分数类?
写了一半了,很迟了,就没写了