zoukankan      html  css  js  c++  java
  • 流程图题过编译

    #include<stdio.h>
    #include<stdlib.h>
    
    // 函数原型
    int getLowestTerms(int, int, int *, int *); // 分数简化
    int getGCD(int, int); // 计算最大公约数
    void Output(int, int, int);
    
    // 测试
    int main()
    {
        int m, n, Num, Denom;
        int status;
    
        scanf("%d%d", &m, &n);
    
        status = getLowestTerms(m, n, &Num, &Denom);
        Output(status, Num, Denom);
    
        return 0;
    }
    
    // 分数化简
    // 原分子分母通过参数输入
    // 化简后的分子分母写入指针形参指向的变量
    int getLowestTerms(int m, int n, int *pNum, int *pDenom)
    {
        int gcd;
        int msign = 1;
        int nsign = 1;
        int numsign = 1;
    
        if(m == 0)
        {
            return 0;
        }
        else if(m == n)
        {
            return 1;
        }
        else if(n == 0)
        {
            return -1;
        }
        else
        {
            // 结果符号判断
            if(m < 0)
            {
                msign = -1;
            }
            if(n < 0)
            {
                nsign = -1;
            }
            // 结果分子符号
            numsign = msign * nsign;
    
            m = abs(m);
            n = abs(n);
            *pNum = m;
            *pDenom = n;
            gcd = getGCD(m, n);
            *pNum /= gcd;
            *pNum *= numsign;
            *pDenom /= gcd;
    
            return 2;
        }
    }
    
    // 计算最大公约数
    int getGCD(int m, int n)
    {
        int rem = n;
    
        while (rem != 0)
        {
            rem = m % n;
            m = n;
            n = rem;
        }
    
        return m;
    }
    
    void Output(int status, int nNum, int nDenom)
    {
        if(status == 0)
        {
            printf("%d
    ", status);
        }
        else if(status == 1)
        {
            printf("%d
    ", status);
        }
        else if (status == 2)
        {
            if(nDenom == 1) // 分母为1
            {
                printf("%d
    ", nNum);
            }
            else
            {
                printf("%d/%d
    ", nNum, nDenom);
            }
        }
        else
        {
            printf("Error!
    ");
        }
    }
    Aim: Buaa
  • 相关阅读:
    奶牛碑文
    快速幂算法——人见人爱A^B
    杨辉三角
    iis404 没有设置mime的后缀
    jquery的click和js的funcition中的参数不一样
    asp:timer的权限与操作注意
    .net 文件上传,只上传修改的东西
    vscode的配置 和xdebug配制
    emoji编码后存储
    php 服务器请求其它网页的方法
  • 原文地址:https://www.cnblogs.com/calm-blogme/p/12096750.html
Copyright © 2011-2022 走看看