Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C บวกเศษส่วนสองจำนวน

บวกเศษส่วน a/b + c/d โดยหาตัวหารร่วมน้อย (LCM) ผ่าน GCD แล้วลดรูปผลลัพธ์

ตัวอย่าง

1/4 + 2/12 = 5/12 (LCM=12)
1/4 + 2/4 = 3/4 (ตัวหารเท่ากันบวกตัวเศษได้เลย)

ขั้นตอน

  1. หา GCD ของตัวหารทั้งสอง
  2. LCM = (den1 * den2) / GCD
  3. ปรับตัวเศษ: n3 = n1*(LCM/den1) + n2*(LCM/den2)
  4. ลดรูปด้วย GCD ของตัวเศษและตัวหารผลลัพธ์

โค้ดตัวอย่าง

#include <stdio.h>

int gcd(int a, int b) {
    if (a == 0) return b;
    return gcd(b % a, a);
}

void smallest(int *den3, int *n3) {
    int cf = gcd(*n3, *den3);
    *den3 /= cf; *n3 /= cf;
}

void add_frac(int n1, int den1, int n2, int den2, int *n3, int *den3) {
    *den3 = gcd(den1, den2);
    *den3 = (den1 * den2) / *den3; // LCM
    *n3 = n1 * (*den3 / den1) + n2 * (*den3 / den2);
    smallest(den3, n3);
}

int main() {
    int n1=1, den1=4, n2=2, den2=12, n3, den3;
    add_frac(n1, den1, n2, den2, &n3, &den3);
    printf("%d/%d + %d/%d = %d/%d\n", n1,den1,n2,den2,n3,den3);
    return 0;
}

ผลลัพธ์

1/4 + 2/12 = 5/12