当前位置:首页 » 编程语言 » 循环c语言分数求和
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

循环c语言分数求和

发布时间: 2022-10-03 08:21:51

⑴ 如何用c语言编程输入两个分数求和并以最简分式的方式输出

#include "stdio.h"
int fun(int num1,int num2)/*求最大公约数函数*/
{
int a,b,temp;
if(num1<num2)
{
temp=num1;
num1=num2;
num2=temp;
}
a=num1;
b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
return a;
}
main()
{
int a1,a2,b1,b2,c=1,num1,num2;
printf("请输入第一个分数的分子:\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语言循环求和

1 / i 改成1.0 / i 试试看?这样变成了浮点数除法。否则是整型除法,1 / i 四舍五入之后变成 0,这样只会循环一次就退出了,结果自然是1。

⑶ C语言:分数求和

//结构定义中包含两个成员,分子和分母
structfraction
{
intup,down;/*分子和分母*/
};

/*
相加算法的核心是找两个分母的最小公倍数和结果分子分母的最大公约数,分别单独函数来求
*/
intpubtime(int,int);//最小公倍数
intpubsub(int,int);//最大公约数,可用辗转相除法求,挺经典的一个方法。

/********分数相加********/
fractionadd(fractionf1,fractionf2)
{
fractionresult;
result.down=pubtime(f1.down,f2.down);
result.up=f1.up*result.down/f1.down+f2.up*result.down/f2.down;
intn=pubsub(result.up,result.down);
result.up/=n;result.down/=n;
returnresult;
}

intpubtime(intn1,intn2)
{
intn=pubsub(n1,n2);
returnn1*n2/n;
}
intpubsub(intn1,intn2)
{
intr=n1;
if(n2>n1)
r=n1,n1=n2,n2=r;
do
{/*辗转相除*/
r=n1%n2;
if(r==0)break;
n1=n2;n2=r;
}while(true);
returnn2;
}

⑷ c语言分数数列求和

看这数列的找规律:2/1,3/2,5/3,8/5,13/8.......

后一项的分母等于前一项的分子,后一项的分子等于前一项的分母+分子

#include<stdio.h>
intmain()
{
inti,n;
doublesum=0,z,m,zSave;//z,m分别保存分子分母
printf("输入数值n:");
scanf("%d",&n);
z=2;m=1;
for(i=0;i<n;i++)
{
sum=sum+z/m;
printf("+%.0lf/%.0lf",z,m);
zSave=z;
z=z+m;
m=zSave;
}
printf("=%.6lf",sum);
return0;
}

⑸ 如何用C语言编程输入两个分数求和并以最简分式的方式输出

输入可以用如下格式:
unsigned int a,b,c,d;

scanf("%d/%d",&a,&b);/*a/b*/
scanf("%d/%d",&c,&d);/*c/d*/
求最大公因数,可以用辗转相除法;公分母=b、d的最小公倍数=b*d/b、d的最大公约数,
通分后,分子相加,结果的分子、分母用辗转相除法求最大公约数,进行约分。
约分后的结果输出。

⑹ C语言,关于分数数列求和

#include<stdio.h>

int main()
{
int n;
float t,r=0,fm=2,fz=1;

scanf("%d",&n);
while(n--)
{
r+=fm/fz;
t=fm;
fm+=fz;
fz=t;
}
printf("%.6f",r);
return 0;
}

⑺ C语言分数相加求和

#include<stdio.h>
#include<math.h>

intfenzi(inti)//分子就是137132131他们之间的差是246810
{
if(i<=0)
return1;
returni*2+fenzi(i-1);
}

intfenmu(inti)//分母就是2的i+1次方
{
return(int)pow(2,i+1);
}

intmain()
{
doublesum=0;
intflag,x,y;
for(inti=0;i<20;i++)
{
x=fenzi(i);
y=fenmu(i);
flag=pow(-1,i);//+-随i是奇偶变换
printf("%c%d/%d",flag>0?'+':'-',x,y);
sum+=flag*x*1.0/y;
}
printf("=%lf ",sum);
return0;
}