ลดรูปเศษส่วน = หาตัวหารร่วมมาก (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