2301_80221164 2023-11-18 19:52 采纳率: 60%
浏览 4
已结题

比较分数大小,为啥结果错的离谱


#include<stdio.h>
int main() {
    int x, y;
    int a, b, m,n;
    scanf_s("%d/%d %d/%d", &a, &b, &m, &n);
    x = a * n;
    y = b * m;
    if (x > y) {


        printf("%d/%d>%d/%d\n", a,b,m,n);
    }
    
    else {


        printf("%d/%d<%d/%d", a, b, m, n);

    }











    return 0;
}

不能这样比较分数吗,为什么结果是错的

  • 写回答

2条回答 默认 最新

  • 柯本 2023-11-18 19:58
    关注

    对你的算法,有两个问题
    一,你没有考虑负值的比较
    二。没有考虑相等的情况
    另外,你为什么不直接判断(float)a/b与(float)m/n,这个更简单

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月6日
  • 已采纳回答 10月29日
  • 创建了问题 11月18日