比较两个分数的大小,主要的思想是输入的两个分数当分母不相同时,先通分,换算成相同的分母后,然后在相互比较分子的大小,
如果分母相同时,直接比较两个分子的大小
实例代码:
- /*****************************************************
- 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;
- }
结果: