请问如何编写一个用户输入一个分数输出最简分式的C语言程序呀?

编写程序,要求用户输入一个分数,然后将其约分为最简式。如:
输入一个分数:8/12
最简分式:2/3

我的思路是求出分子分母的最大公因数,分子分母同时除以最大公因数便得到了最简的分子与分母,代码如下:


#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a,b,x,y,c;
    printf("输入一个分式:");
    scanf("%d/%d",&a,&b);
    if(a<b)
    {
       x=b;y=a;
    }
    else
    {
        x=a;y=b;
    }
    c=x%y;
    while(c)
    {
        x=y;
        y=c;
        c=x%y;
    }
    if(b/y!=1)
    printf("最简分式为:%d/%d",a/y,b/y);
    else
    printf("最简分式为:%d",a/y);
    return 0;
}

使用欧几里得定理求解,除一下得到最简形式

#include <stdio.h>
int gcd(int a, int b) {
    return b ? gcd(b, a % b) : a;
}
int main() {
    int a, b;
    printf("Input the fraction(x/y):\n");
    scanf("%d/%d", &a, &b);
    int k = gcd(a, b);
    printf("%d/%d", a / k, b / k);
    return 0;
}

Input:

8/12

OutPut:

2/3