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语言“翻译”一下
另外提供一个思路,直接计算结果,然后从无限循环小数转化成分数形式