600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > c语言 分数通分 如何用C语言 实现简单的分数化简

c语言 分数通分 如何用C语言 实现简单的分数化简

时间:2024-04-06 15:55:41

相关推荐

c语言 分数通分 如何用C语言 实现简单的分数化简

我顺便把代码付上:

// flex.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include "stdio.h"

#define ULONG unsigned long

typedef struct _NUMERATOR

{

ULONG Fraction;

ULONG Denominator;

}NUMERATOR,*PNUMERATOR;

ULONG GDivisor(ULONG a,ULONG b)

{

ULONG temp;

if(a > b)

a^=b^=a^=b;

for(;b;temp=a%b,a=b,b=temp);

return a;

}

ULONG LCM(ULONG a,ULONG b)

{

return a*b/GDivisor(a,b);

}

void NumeratorAdd(PNUMERATOR a,PNUMERATOR b)

{

ULONG g;

a->Fraction=a->Fraction*b->Denominator+a->Denominator*b->Fraction;

a->Denominator*=b->Denominator;

g=GDivisor(a->Fraction,a->Denominator);

a->Fraction/=g,a->Denominator/=g;

}

void NumeratorMul(PNUMERATOR a,PNUMERATOR b)

{

ULONG g;

a->Fraction*=b->Fraction;

a->Denominator*=b->Denominator;

g=GDivisor(a->Fraction,a->Denominator);

a->Fraction/=g,a->Denominator/=g;

}

int main()

{

NUMERATOR hr={5,7};

NUMERATOR a={3,25};

NUMERATOR b={3,7};

NumeratorMul(&hr,&a);

NumeratorAdd(&hr,&b);

printf("result = %u/%u\n",hr.Fraction,hr.Denominator);

return 0;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。