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

多个分数约分c语言

发布时间: 2022-07-17 21:10:42

c语言 约分最简分式

此即为求两个数的最大公约数
最大公约数用欧几里得算法
int gcd(int a, int b)
{
if(0 == a%b)
return b;
return gcd(b, a%b);
}
int main()
{
int a,b,c;
scanf("%d %d", &a, &b);
c = gcd(MAX(a,b), MIN(a,b));
printf("%d %d\n", a/c, b/c);
return 0;
}

Ⅱ 用c++编写一个给分数约分的程序

#include <iostream>
using namespace std;

/*最简单的方法就是,分子和分母如果可以同除一个数,那么就约去这个数
直到这个除数大于分子或分母,那么这个分数就是最简的了*/
int main()
{
int n,m,max;
cout<<"输入分子:"<<endl;
cin>>n;
cout<<"输入分母:"<<endl;
cin>>m;
for(int i=2;n>=i;i++)
if(n%i==0 && m%i==0)
{
n/=i;
m/=i;
i--;
}
cout<<n<<"/"<<m<<endl;
return 0;
}

Ⅲ c语言编程分数的四则运算如何约分化简

#include <stdio.h> #include <time.h> void main() { int num,mark=0,i; int num1,num2,sum,n; scanf("%d",&num); srand((unsigned) time(NULL)); for(i=0;i<num;i++) { num1=rand()%100; num2=rand()%100; n=rand()%4; switch(n) { case 0 : { printf("%d+%d=\n",num1,num2); printf("输入答案\n"); scanf("%d",&sum); if(sum==num1+num2) { printf("right!\n"); mark++; } else printf("wrong!\n"); } break; case 1 : { printf("%d÷%d=\n",num1,num2); printf("输入答案\n"); scanf("%d",&sum); if(sum==num1/num2) { printf("right!\n"); mark++; } else printf("wrong!\n"); } break; case 2 : { printf("%d-%d=\n",num1,num2); printf("输入答案\n"); scanf("%d",&sum); if(sum==num1-num2) { printf("right!\n"); mark++; } else printf("wrong!\n"); } break; case 3 : { printf("%d*%d=\n",num1,num2); printf("输入答案\n"); scanf("%d",&sum); if(sum==num1*num2) { printf("right!\n"); mark++; } else printf("wrong!\n"); } break; } } printf("\n正确个数为%d\n",mark); }

Ⅳ 编写c语言程序,实现分数的约分

以下一段程序是循环运行的,即,
得出结果后继续下一轮接受用户输入.
任何一个数为0
则退出.
程序运行过程:
接受用户输入两个数,
第一个是分子,
第二个是分母.
输出结果,并等待下一轮.
两个数中任意一个为0,
则程序立即退出.
#include
#include
main()
{
int
iNum,iDeno,iMod,iMin;
iNum=iDeno=1;
while(iNum!=0
&&
iDeno!=0)
{
printf("Please
input
the
numerator
and
the
denominator:\n");
scanf("%i%i",&iNum,&iDeno);
if
(iNum==0
||
iDeno==0)
continue;
if
(iNum
iNum
||
i>iDeno)
break;
if
(iNum%i==0
&&
iDeno%i==0)
{
iNum/=i;
iDeno/=i;
i=1;
}
}
printf("\n%i\n----\n%i\n",iNum,iDeno);
getch();
}
}

Ⅳ 如何用C语言,实现简单的分数化简

找分母分子的最大公约数,然后同除以这个数
#include<stdio.h>
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int x,y;
while(scanf("%d/%d",&x,&y)!=EOF)
{
if(y==0)
{
printf("分母不能为0\n");
continue;

}
int c=gcd(x,y);
x/=c;
y/=c;
printf("%d/%d\n",x,y);
}
return 0;
}

Ⅵ C语言中怎样约分

main()
{
intden,num,temp,x=0;
printf("请输入分子!");
scanf("%d",&num);
printf("请输入分母!");
scanf("%d",&den);
if(num!=den)
{temp=den>num?den:num;
while(temp>1)
{
if(den%temp==0&&num%temp==0)
{
printf("有公约数%d,约分后=%d/%d",temp,num/temp,den/temp);
x=1;
break;
}
elsetemp--;

}
}
elseprintf("分子分母相同");
if(x==0)printf("不能约分");
}

你如果要的是这个的话

Ⅶ c语言,怎么实现对分数<就是几分之几>的加减乘除等等的运算

  1. 定义一个数据结构,可以是一个长度2的数组,也可以是一个struct,下面以数组为例

  2. 定义两个长度2的数组 a[2],b[2],分子分别保存在a[0],b[0],分母分别保存在a[1],b[1](负数的话,符号同分子一起)

  3. 乘:分母,分子分别相乘;除:乘以倒数(调换乘数的分子分母);然后约分(涉及最大公约数算法,可网络)

  4. 加减:分母需要相同,涉及最小公倍数算法(可网络)


以上思路和人工计算的方式相同,只是用c语言“翻译”一下

另外提供一个思路,直接计算结果,然后从无限循环小数转化成分数形式

Ⅷ 如何用C语言,实现简单的分数化简

/*
Note:Your
choice
is
C
IDE
*/
//如何实现简单分数的化简
#include
"stdio.h"
//只要找出最大的因子就行了
辗转相除法
int
gcd(int
n,int
m)
{
int
temp,r;
//把大的数放在n里面
if(n<m)
{
temp=n;
n=m;
m=temp;
}
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
return
n;
}
void
main()
{
int
a,b;//a是分子
b是分母
printf("please
input
a
and
b:");
scanf("%d%d",&a,&b);
printf("%d/%d",a/gcd(a,b),b/gcd(a,b));
}
求加分