栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

16-E-7

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

16-E-7

#include
#include
#include

struct fraction
{
    int numerator;
    int denominator;
};

void read_line(struct fraction* read);
void GCD(struct fraction* p);
void additioin(struct fraction* p1, struct fraction* p2);
void subtraction(struct fraction* p1, struct fraction* p2);
void multiplication(struct fraction* p1, struct fraction* p2);
void division(struct fraction* p1, struct fraction* p2);

int main(void)
{
    struct fraction f1, f2;
    struct fraction* p1 = &f1, * p2 = &f2;

    (void)read_line(p1);
    (void)read_line(p2);

    (void)GCD(p1);
    (void)GCD(p2);

    (void)additioin(p1, p2);
    (void)subtraction(p1, p2);
    (void)multiplication(p1, p2);
    (void)division(p1, p2);

    return 0;
}

void read_line(struct fraction* p)
{
    int num, denom;

    printf("Please enter numerator and denominator:");
    scanf_s("%d/%d", &num, &denom);

    p->numerator = num;
    p->denominator = denom;

    return;
}

void GCD(struct fraction* p)
{
    int m = p->numerator, n = p->denominator;
    int i = 0, x;

    if (n > m)
    {
        x = n;
        n = m;
        m = x;
    }
    while (n != 0)
    {
        i = n;
        n = m % n;
        m = i;
    }

    p->numerator /= m;
    p->denominator /= m;

    return;
}

void additioin(struct fraction* p1, struct fraction* p2)
{
    int num, denom;

    denom = (p1->denominator) * (p2->denominator);
    num = (p1->numerator * p2->denominator) + (p2->numerator * p1->denominator);

    printf("Addition: %d/%dn", num, denom);

    return;
}

void subtraction(struct fraction* p1, struct fraction* p2)
{
    int num, denom;

    denom = (p1->denominator) * (p2->denominator);
    num = (p1->numerator * p2->denominator) - (p2->numerator * p1->denominator);

    printf("Subtraction: %d/%dn", num, denom);

    return;
}

void multiplication(struct fraction* p1, struct fraction* p2)
{
    int num, denom;

    denom = (p1->denominator) * (p2->denominator);
    num = (p1->numerator) * (p2->numerator);
    struct fraction result = { .numerator = num,.denominator = denom };
    struct fraction* p3 = &result;
    (void)GCD(p3);

    printf("Multiplication: %d/%dn",result.numerator,result.denominator);

    return;
}

void division(struct fraction* p1, struct fraction* p2)
{
    int num, denom;

    denom = (p1->denominator) * (p2->numerator);
    num = (p1->numerator) * (p2->denominator);
    struct fraction result = { .numerator = num,.denominator = denom };
    struct fraction* p3 = &result;
    (void)GCD(p3);

    printf("Division: %d/%dn", result.numerator, result.denominator);

    return;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/312075.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号