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語言,怎麼實現對分數<就是幾分之幾>的加減乘除等等的運算
定義一個數據結構,可以是一個長度2的數組,也可以是一個struct,下面以數組為例
定義兩個長度2的數組 a[2],b[2],分子分別保存在a[0],b[0],分母分別保存在a[1],b[1](負數的話,符號同分子一起)
乘:分母,分子分別相乘;除:乘以倒數(調換乘數的分子分母);然後約分(涉及最大公約數演算法,可網路)
加減:分母需要相同,涉及最小公倍數演算法(可網路)
以上思路和人工計算的方式相同,只是用c語言「翻譯」一下
另外提供一個思路,直接計算結果,然後從無限循環小數轉化成分數形式