7-24 约分最简分式 (15分)

分数可以表示为分子/分母的形式。编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。

 

 

#include <stdio.h>
#include <stdlib.h>

int gys(int m, int n); 
int main()
{
    int a, b;
    scanf("%d/%d", &a, &b);
    int p = gys(a,b);
    if(a != 0 && b!= 0)
    {
        if(b%a == 0) 
        {
            int x = b/a;
            b = x;
            a = 1;
            printf("%d/%d",a,b);
        }
        else if(a%b == 0) 
        {
            int x = a/b;
            b = 1;
            a = x;
            printf("%d/%d",a,b);
        }
        else if(p > 1)
        {
            a = a/p;
            b = b/p;
            printf("%d/%d",a,b);
        }
        else
        {
            printf("%d/%d",a,b);
        }
    }
    else
    {
        printf("INCORRECT INPUT!");
    }
    return 0;
}

int gys(int m, int n)
{
    int rest = m%n;
    while(rest != 0)
    {
        m = n;
        n = rest;
        rest = m % n;
    }
    return n;
}
View Code

 

 posted on 2020-03-12 17:36  大帅916  阅读(918)  评论(0编辑  收藏  举报