c語言約分
❶ c語言約分問題
#include"stdio.h"
intmain(intargc,char*argv[]){
intx,y,r,a,b;
printf("Pleaseenterx&y(int0<=x,y)... ");
scanf("%d%d",&x,&y);
if((a=x)&&(b=y)){
while(r=a%b){
a=b;
b=r;
}
printf("%d",x/b);
if((y/=b)!=1)
printf("/%d",y);
printf(" ");
}
elseif(x==0)
printf("0 ");
elseif(y==0)
printf("Nosolution... ");
return0;
}
運行樣例:
❷ 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語言程序的一部分,是要對兩個數進行約分,運行結果是錯誤的,看看問題在哪裡,謝謝,坐等。
q=m;
if(p==0)fprintf(fp2,"0");
elseif(d[i][j]==m)fprintf(fp2,"1");
elseif(d[i][j]==-m)fprintf(fp2,"-1");
else{
while(d[i][j]%m!=0){
c=d[i][j]%m;
d[i][j]=m;
m=c;
}
d[i][j]=p/m;
m=q/m;
if(m<0){
d[i][j]=-d[i][j];
m=-m;
}
if(m==1)fprintf(fp2,"%4d",d[i][j]);
elsefprintf(fp2,"%4d/%d",d[i][j],m);
}
❹ C語言 如何編寫將小數轉換成分數(可以肯定該小數能轉換成分數)
循環小數麻煩些,比如
0.(16789)
這代表0.1678916789......
我們可以設s=0.(16789)
則100000s=16789.(16789)
相減得99999s=16789
則s=16789/99999
一般來說0.(x1x2..xn)可以化成x1x2..xn/99..9(n個),然後再約分
❺ 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語言編程分數的四則運算如何約分化簡
#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();
}
}