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

โปรแกรม C ลดรูปเศษส่วนให้เป็นพจน์น้อยที่สุดด้วย while loop (GCD)


ลดรูปเศษส่วน = หาตัวหารร่วมมาก (GCD) แล้วหารตัวเศษและตัวส่วน

ตัวอย่างที่ 1: ใช้ Euclidean Algorithm (while loop)

#include <stdio.h>
int main() {
    int num, den, x, y, rem, gcd;
    
    printf("Enter fraction (num/den): ");
    scanf("%d/%d", &num, &den);
    
    x = num; y = den;
    while(y != 0) {
        rem = x % y;
        x = y;
        y = rem;
    }
    gcd = x;
    
    printf("Simplified: %d/%d\n", num/gcd, den/gcd);
    return 0;
}

ผลลัพธ์

enter the fraction by using / operator: 12/24
lowest representation of fraction: 1/2

ตัวอย่างที่ 2: หา GCD ด้วยการลดทีละ 1 (Descending)

#include <stdio.h>
int main() {
    int n1, n2, gcd;
    printf("Enter fraction (n1/n2): ");
    scanf("%d/%d", &n1, &n2);
    
    gcd = (n1 < n2) ? n1 : n2;
    
    if(n1 == 0 || n2 == 0) {
        printf("Result: %s\n", n1 ? "Infinity" : "0");
        return 0;
    }
    
    while(gcd > 1) {
        if(n1 % gcd == 0 && n2 % gcd == 0) break;
        gcd--;
    }
    
    printf("Simplified: %d/%d\n", n1/gcd, n2/gcd);
    return 0;
}

ผลลัพธ์

Enter the value for num1 /num2: 28/32
Final fraction 7/8