當前位置:首頁 » 編程語言 » c語言怎麼乘一個分數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言怎麼乘一個分數

發布時間: 2022-10-03 17:43:29

1. c語言中乘以8%怎麼寫

把8%化成小數0.08
以免與%(整數求余數運算符)沖突,而可能導致程序執行這種運算,得不到
想要的結果,這是比較好的方法
由此我們可以知道,盡量不用運算符來表示數(分數、百分數等)是一種比較安全的做法
如8%不寫成8/100,而寫成0.08

2. 用C語言怎麼乘啊

直接使用:19*23*149即可。
在c語言中,加減乘除運算符號分別為:+,-,*,/。%表示取余符號,例如a%b即求a除以b後的余數,c語言中括弧運算只能使用()。
例如:
#include
int main(){
int n;
n=19*23*149;
printf("%d\n",n);
return 0;
}
/*
輸出:
65113
*/

3. 怎樣用c語言的 類 實現分數的加減乘除

用結構弄一個分數結構,有分子、分母
按平常的分數運演算法則進行運算
每次運算後都化簡一下

4. C語言:分數的乘法

#include<stdio.h>
#include<stdlib.h>structfraction

{

intnumerator;//分子

intdenominator;//分母

intsymbol;//符號,分子為負時取值為-1,為正時取值為1,其它取值無意義

};

intscan_frac(structfraction*f,structfraction*g);//按題目格式輸入兩個分數,存入f和g所指的內存中。

structfractionmultiply_frac(structfractionf,structfractiong);//返回分數f和g的乘積。


intmain()
{
structfractionf1,f2,proct;
while(scan_frac(&f1,&f2)!=EOF)
{
proct=multiply_frac(f1,f2);
if(proct.numerator==0)
{
printf("0 ");
continue;
}
if(proct.symbol==-1)
printf("-");
printf("%d/%d ",proct.numerator,proct.denominator);
}
return0;
}

//讀取
intscan_frac(structfraction*f,structfraction*g)
{

charc=0;

int*tmpnum=&f->numerator;

*tmpnum=0;
f->symbol=1;
while((c=getchar())!=' ')
{


if(c<='9'&&c>='0')
*tmpnum=*tmpnum*10+c-'0';
elseif(c=='/')
{
tmpnum=&f->denominator;
*tmpnum=0;
}
elseif(c=='-')
f->symbol=-1;
}


tmpnum=&g->numerator;
*tmpnum=0;
g->symbol=1;
while((c=getchar())!=' ')
{


if(c<='9'&&c>='0')
*tmpnum=*tmpnum*10+c-'0';
elseif(c=='/')
{
tmpnum=&g->denominator;
*tmpnum=0;
}
elseif(c=='-')
g->symbol=-1;
}
fflush(stdin);
returnc;

}
//乘積
structfractionmultiply_frac(structfractionf,structfractiong)
{
inti=0;
inttmp1,tmp2;
structfraction*result=(structfraction*)malloc(sizeof(structfraction));

//約分
tmp1=f.denominator*g.denominator;
tmp2=f.numerator*g.numerator;

i=tmp1>tmp2?tmp2:tmp1;

while(i>=2)
{

if(tmp1%i==0
&&tmp2%i==0)
{
tmp1/=i;
tmp2/=i;
}
i--;
}
result->denominator=tmp1;
result->numerator=tmp2;
result->symbol=f.numerator*g.numerator;

return*result;
}

5. C語言中的分數四則運算

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void operation()
{
int a,b,c,d;
int x,y;
int i,j,t;
char ch; 
printf("-------歡迎進入分數四則運算的操作界面-------\n\n");
printf("請輸入第一個分數的分子:"); 
scanf("%d",&b);
printf("請輸入第一個分數的分母: ");
scanf("%d",&a);
if(!a)
{
printf("Error,分母不能為0!\n");
exit(0);
}
printf("請輸入第二個分數的分子:");
scanf("%d",&d);
printf("請輸入第二個分數的分母:");
scanf("%d",&c);
if(!c)
{
printf("Error,分母不能為0!\n");
exit(0);
}

getchar();
printf("請輸入運算符號[ + - * / ]: ");
scanf("%c",&ch);
switch(ch)
{
case'+': x=a*c; y=b*c+a*d; break;
case'-': x=a*c; y=b*c-a*d; break;
case'*': x=a*c; y=b*d; break;
case'/': x=a*d; y=b*c; break;
default: printf("Error,不存在該運算符號!\n"); exit(0);
}
printf("通分後的分母是%d,分子是%d\n",x,y);

x>=y?(i=x,j=y):(i=y,j=x);
/*輾轉相除法(歐幾里德演算法)*/
    t=i%j;
    while(t)  
{
i=j;
j=t;
t=i%j;
}
/*更相減損術 */
    /*t=i-j;
while(t)
{
i=j;
j=t;
t=abs(i-j);
if(t==j)
break;
}*/

       if(y/x>=0)
{
x/=j;
     y/=j;
}
else
{
x=abs(x/j);
y=-abs(y/j);
}
        printf("運算結果如下:\n");
if(y%x==0)
printf("%d/%d %c %d/%d = %d\n",b,a,ch,d,c,y/x);
else
printf("%d/%d %c %d/%d =%d/%d\n",b,a,ch,d,c,y,x);
}

void main()
{
operation();
 } 
//轉載於微信公眾號:會說話的青鳥,這上面有詳細的講解,沒看懂可以去那參考一下哦

6. c語言程序設計分數的加減乘除

改變數據類型試試
類似這樣吧
#include<stdio.h>
double gongbeishu(double b,double d)
{
double i,max;
max=b>d?b:d;
for(i=max;;i++)
if((int)(i)%(int)(b)==0&&(int)(i)%(int)(d)==0)
break;
return i;
}
double gongyueshu(double a,double c)
{
double i,min;
min=a<c?a:c;
for(i=2;i<=min;i++)
if((int)(a)%(int)(i)==0&&(int)(c)%(int)(i)==0)
break;
if(i>min)
i=1;
return i;
}
void main()
{
double a,b,c,d;
double beishu1,beishu2,fenzihe0,fenmu,fenzihe1;
scanf("%lf/%lf %lf/%lf",&a,&b,&c,&d);
beishu1=gongbeishu(b,d)/b;
beishu2=gongbeishu(b,d)/d;
fenzihe0=beishu1*a+beishu2*c;
fenmu=gongbeishu(b,d);
fenzihe1=fenzihe0/gongyueshu(fenzihe0,fenmu);
fenmu=fenmu/gongyueshu(fenzihe0,fenmu);
printf("%lf %lf/%lf\n",a/b+c/d,fenzihe1,fenmu);
}

7. 用C語言怎麼乘啊

直接使用:19*23*149即可。

在c語言中,加減乘除運算符號分別為:+,-,*,/。%表示取余符號,例如a%b即求a除以b後的余數,c語言中括弧運算只能使用()。

例如:

#include<stdio.h>
intmain(){
intn;
n=19*23*149;
printf("%d ",n);
return0;
}
/*
輸出:
65113
*/

8. C語言:分數的計算

代碼如下 供參考

#include<stdio.h>

structFraction
{
inta,b,s;
};

structFractionAdd(structFractionx,structFractiony);
structFractionSub(structFractionx,structFractiony);

intgcd(inta,intb)
{
while(a!=b)
{
if(a>b)
{
a-=b;
}
else
{
b-=a;
}
}

returna;
}

voidmini(structFraction*a)
{
intg;

if(a->a==0)
{
a->b=1;
return;
}
g=gcd(a->a,a->b);
a->a/=g;
a->b/=g;
}

structFractionAdd(structFractionx,structFractiony)
{
structFractionr;
if(x.s!=y.s)
{
if(x.s==1)
{
y.s=1;
returnSub(x,y);
}
else
{
x.s=1;
returnSub(y,x);
}
}
r.s=x.s;
r.b=x.b*y.b;
r.a=x.a*y.b+x.b*y.a;
mini(&r);

returnr;
}

structFractionSub(structFractionx,structFractiony)
{
structFractionr;
if(x.s!=y.s)
{
if(x.s==1)
{
y.s=1;
returnAdd(x,y);
}
else
{
x.s=1;
r=Add(x,y);
r.s=-1;
returnr;
}
}

r.s=x.s;
r.b=x.b*y.b;
r.a=x.a*y.b-x.b*y.a;
if(r.a<0)
{
r.s*=-1;
r.a*=-1;
}
mini(&r);

returnr;
}

voidDisplay(structFractiona)
{
if(a.s==1)printf("+");
elseprintf("-");
printf("%d/%d ",a.a,a.b);
}

intmain()
{
structFractionAdd(structFractionx,structFractiony);
structFractionSub(structFractionx,structFractiony);
structFractionf1={1,2,1},f2={3,4,1},f3;
f3=Add(f1,f2);
printf(" 兩個分數相加的結果為:");Display(f3);
f3=Sub(f1,f2);
printf(" 兩個分數相減的結果為:");Display(f3);
return0;
}

9. C語言程序關於分數相乘中的問題。

#include<stdio.h>
int main()
{
int n,a,b,i=0,j,k,x,y,z;
scanf("%d",&n); //有n個分數要相乘
x=1;
y=1;
while(i<n)
{
scanf("%d%d",&a,&b);
x=x*a; //分子累乘
y=y*b; //分母累乘
i++;
}
if(x%y==0) //約分為整數或1時的情況
{ z=x/y;
printf("%d\n",z);
return 0;
}
if((x<y)&&(x%y!=0)) //真分數求最大公約數並約分
{
for(j=x;j>=2;j--) //!!如果不可約分則無結果,改為for(j=x;j>=1;j--)
{
if((x%j==0)&&(y%j==0)) //加分數求最大公約數並約分 x=x/j;
x=x/j;
y=y/j;
printf("%d/%d\n",x,y);
return 0;
}
}
if((x>y)&&(x%y!=0))
{
for(k=y;k>=2;k--)//!!同理改為for(k=y;k>=1;k--)
{
if((x%k==0)&&(y%k==0))
x=x/k;
y=y/k;
printf("%d/%d\n",x,y);
return 0;
}
}
}

10. c語言,怎麼實現對分數<就是幾分之幾>的加減乘除等等的運算

  1. 定義一個數據結構,可以是一個長度2的數組,也可以是一個struct,下面以數組為例

  2. 定義兩個長度2的數組 a[2],b[2],分子分別保存在a[0],b[0],分母分別保存在a[1],b[1](負數的話,符號同分子一起)

  3. 乘:分母,分子分別相乘;除:乘以倒數(調換乘數的分子分母);然後約分(涉及最大公約數演算法,可網路)

  4. 加減:分母需要相同,涉及最小公倍數演算法(可網路)


以上思路和人工計算的方式相同,只是用c語言「翻譯」一下

另外提供一個思路,直接計算結果,然後從無限循環小數轉化成分數形式