如何将成绩用C语言分,如何利用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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值