c语言分数求和函数 c语言分数求和函数怎么求

如何用C语言编程输入两个分数求和并以最简分式的方式输出?#include "stdio.h"
int fun(int num1,int num2)/*求最大公约数函数*/
{
int a,b,temp;
if(num1num2)
{
temp=num1;
num1=num2;
num2=temp;
}
a=num1;
b=num2;
while(b!=0)/*利用辗除法c语言分数求和函数,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
return a;
}
main()
{
int a1,a2,b1,b2,c=1,num1,num2;
printf("请输入第一个分数c语言分数求和函数的分子:\n");
scanf("%d",a1);
printf("请输入第一个分数的分母:\n");
scanf("%d",a2);
printf("请输入第一个分数的分子:\n");
scanf("%d",b1);
printf("请输入第一个分数的分母:\n");
scanf("%d",b2);
num1=a1*b2+b1*a2;
num2=a2*b2;
c=fun(num1,num2);
num1=num1/c;
num2=num2/c;
if(num2==1)
printf("结果为:%d:",num1);
else
printf("结果为:%d/%d:",num1,num2);
}
C语言:分数求和//结构定义中包含两个成员,分子和分母
struct fraction
{
int up, down;/*分子和分母*/
};
/*
相加算法的核心是找两个分母的最小公倍数和结果分子分母的最大公约数,分别单独函数来求
*/
int pubtime(int, int);//最小公倍数
int pubsub(int, int);//最大公约数,可用辗转相除法求,挺经典的一个方法 。
/********分数相加********/
fraction add(fraction f1, fraction f2)
{
fraction result;
result.down = pubtime(f1.down, f2.down);
result.up = f1.up * result.down / f1.down + f2.up * result.down / f2.down;
int n = pubsub(result.up, result.down);
result.up /= n; result.down /= n;
return result;
}
int pubtime(int n1, int n2)
{
int n = pubsub(n1, n2);
return n1 * n2 / n;
}
int pubsub(int n1, int n2)
{
int r = n1;
if(n2n1)
r = n1, n1 = n2, n2 = r;
do
{ /*辗转相除*/
r = n1 % n2;
if(r == 0) break;
n1 = n2; n2 = r;
}while(true);
return n2;
}
C语言,关于分数数列求和分数数列求和是一个常见的C语言编程题,要求计算一个分数序列的前n项之和 , 例如2/1+3/2+5/3+8/5+13/8+… 。这个分数序列的规律是从第二个数开始,分子等于前一个数的分子加分母,分母等于前一个数的分子 。为了求出前n项之和,可以用一个循环语句来累加每一项的值,并用double类型来存储结果,以保证精度 。
C语言分数相加求和#include stdio.h
#include math.h
int fenzi(int i)// 分子就是 1 3 7 13 21 31他们之间的差是 2 4 6 8 10
{
if (i = 0)
return 1;
return i * 2 + fenzi(i-1);
}
int fenmu(int i)// 分母就是 2 的 i + 1 次方
{
return (int)pow(2, i+1);
}
int main()
{
double sum = 0;
int flag, x, y;
for (int i = 0; i20; i++)
{
x = fenzi(i);
y = fenmu(i);
flag = pow(-1, i);// + - 随i是奇偶变换
printf("%c%d/%d", flag0 ? '+' : '-', x, y);
sum += flag * x * 1.0 / y;
}
printf(" = %lf\n", sum);
return 0;
}
【c语言分数求和函数 c语言分数求和函数怎么求】关于c语言分数求和函数和c语言分数求和函数怎么求的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读