比较两个分数的大小,主要的思想是输入的两个分数当分母不相同时,先通分,换算成相同的分母后,然后在相互比较分子的大小,
如果分母相同时,直接比较两个分子的大小
实例代码:
/*****************************************************
copyright (C), 2016-2017, Lighting Studio. Co., Ltd.
Author:ChenYangYang Version:0.1 Date:2016/11/22
Description:比较两个分数的大小
*****************************************************/
#include <stdio.h>
int main()
{
int z1;
int z2;
int m1;
int m2;
printf("Please input two num:(a/b c/d):");
scanf("%d/%d %d/%d",&z1,&m1,&z2,&m2);
if(m1 == m2)
{
if(z1 > z2)
{
printf("%d/%d > %d/%d\n",z1,m1,z2,m2);
}
if(z1 < z2)
{
printf("%d/%d < %d/%d\n",z1,m1,z2,m2);
}
if(z1 == z2)
{
printf("%d/%d = %d/%d\n",z1,m1,z2,m2);
}
}
else
{
if(m1 > m2)
{
if(z1 > z2)
{
if(z1 * m2 > z2 * m1)
{
printf("%d/%d < %d/%d\n",z2,m2,z1,m1);
}
else
{
printf("%d/%d > %d/%d\n",z1,m2,z2,m2);
}
}
else if(z1 < z2)
{
printf("%d/%d < %d/%d\n",z1,m1,z2,m2);
}
}
else if(m1 < m2)
{
if(z1 * m2 > z2 * m1)
{
printf("%d/%d > %d/%d\n",z1,m1,z2,m2);
}
else if(z1 * m2 < z2 * m1)
{
printf("%d/%d < %d/%d\n",z1,m1,z2,m2);
}
else
{
printf("%d/%d = %d/%d\n",z1,m1,z2,m2);
}
}
}
return 0;
}
结果: