C语言,求两个分数的和,要用结构体
求两个分数的和。如:3/5+4/7=(3*7+5*4)/(5*7)=41/35;3/5+4/35=(3*7+4)/35=25/35=5/7;⑴要定义结构体类型,名为分数f...
求两个分数的和。 如:3/5+4/7=(3*7+5*4)/(5*7)=41/35; 3/5+4/35=(3*7+4)/35=25/35=5/7; ⑴ 要定义结构体类型, 名为分数 fraction 成员:分子、分母 (numerator、denominator) 变量:分数1、分数2 ⑵ 用一函数frac_add()计算、化简并返回两个分数 的和。 ⑶ 两个相加的分数由键盘输入,输出和的样式为: num1/den1+num2/den2=num/den (或整数)
展开
展开全部
#include <stdio.h> typedef struct node{ long numerator,denominator; void frac_add(struct node,struct node); }fraction; void fraction::frac_add(fraction f1,fraction f2){ long i=2; this->denominator=f1.denominator*f2.denominator; this->numerator=f1.denominator*f2.numerator+f1.numerator*f2.denominator; while(i<=this->denominator&&i<=this->numerator){ while(!(this->denominator%i||this->numerator%i)){ this->denominator/=i; this->numerator/=i; } i++; } } void main(){ fraction f1,f2,f3; f1.numerator=3; f1.denominator=5; f2.numerator=4; f2.denominator=35; f3.frac_add(f1,f2); printf("%ld/%ld+%ld/%ld=%ld",f1.numerator,f1.denominator,f2.numerator,f2.denominator,f3.numerator); if(f3.numerator!=1){ printf("/%ld",f3.denominator); }putchar('\n'); }
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询