當前位置:首頁 » 編程語言 » 多個分數約分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));
}
求加分