Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình so sánh 2 phân số trong C

Cho 2 phân số với tử/mẫu số. So sánh và tìm phân số lớn hơn.

Ví dụ

Đầu vào - 2/3 và 4/3

Đầu ra - 4/3

Giải thích - 2/3 ≈ 0.667 < 4/3 ≈ 1.333

Đầu vào - 1/2 và 4/3

Đầu ra - 4/3

Phương pháp

  • So sánh a/b và c/d bằng phép nhân chéo: a×d vs b×c
  • Nếu a×d - b×c > 0 → phân số 1 lớn hơn
  • Ngược lại phân số 2 lớn hơn
  • Tránh chia thực số, chính xác hơn

Chương trình mẫu

#include <stdio.h>

struct Fraction {
    int nume, deno;
};

struct Fraction greater(struct Fraction f1, struct Fraction f2) {
    int Y = f1.nume * f2.deno - f1.deno * f2.nume;
    return (Y > 0) ? f1 : f2;
}

int main() {
    struct Fraction f1 = {4, 5};
    struct Fraction f2 = {3, 4};
    struct Fraction res = greater(f1, f2);
    printf("Phân số lớn hơn: %d/%d\n", res.nume, res.deno);
    return 0;
}

Kết quả

Phân số lớn hơn: 4/5

Giải thích: 4/5 = 0.8 > 3/4 = 0.75