c语言带分数四则运算问题!!!要求被调函数,化简.
设计题目十:四则运算一、问题描述:设计一个练习加、减、乘、除四则运算要求对输入的两个分数选择进行加、减、乘、除四则运算,并输入用分数表示的结果。二、功能要求:1、要求在主...
设计题目十:四则运算
一、问题描述:
设计一个练习加、减、乘、除四则运算要求对输入的两个分数选择进行加、减、乘、除四则运算,并输入用分数表示的结果。
二、功能要求:
1、要求在主函数中输入两个分数和运算符,若两个分数分母等于0则用:exit(0);退出。
2、在被调函数f1()中对输入的数据进行计算。
3、在被调函数f2()中对计算的结果进行化简
三、算法提示:
#include <stdio.h>
long int a,b,c,d,x,y,z;
char op;
int f1();
int f2()
main()
{
} 展开
一、问题描述:
设计一个练习加、减、乘、除四则运算要求对输入的两个分数选择进行加、减、乘、除四则运算,并输入用分数表示的结果。
二、功能要求:
1、要求在主函数中输入两个分数和运算符,若两个分数分母等于0则用:exit(0);退出。
2、在被调函数f1()中对输入的数据进行计算。
3、在被调函数f2()中对计算的结果进行化简
三、算法提示:
#include <stdio.h>
long int a,b,c,d,x,y,z;
char op;
int f1();
int f2()
main()
{
} 展开
2个回答
展开全部
#include <stdio.h>
long int a,b,c,d,x,y,z;
char op;
int f1();
int f2();
main()
{printf("shu ru di yi ge shu de fen zi:");
scanf("%ld",&a);
printf("shu ru di yi ge shu de fen mu:");
scanf("%ld",&b);
if(!b) {printf("error");exit(0);}
printf("shu ru di er ge shu de fen zi:");
scanf("%ld",&c);
printf("shu ru di er ge shu de fen mu:");
scanf("%ld",&d);
if(!d) {printf("error");exit(0);}
getchar();
printf("shu ru yun suan fu:");
scanf("%c",&op);
f1();
f2();
printf("jie guo shi %ld/%ld\n",y,x);
getch();
}
int f1()
{switch(op)
{case '+':x=b*d;y=a*d+b*c;break;
case '-':x=b*d;y=a*d-b*c;break;
case '*':x=b*d;y=a*c;break;
case '/':x=b*c;y=a*d;break;
default:printf("op illegal\n");exit(0);
}
return 1;
}
int f2()
{int i,j,t;
i=x>y?x:y;
j=x+y-i;
t=i%j;
while(t)
{i=j;
j=t;
t=i%j;
}
x=x/j;
y=y/j;
}
long int a,b,c,d,x,y,z;
char op;
int f1();
int f2();
main()
{printf("shu ru di yi ge shu de fen zi:");
scanf("%ld",&a);
printf("shu ru di yi ge shu de fen mu:");
scanf("%ld",&b);
if(!b) {printf("error");exit(0);}
printf("shu ru di er ge shu de fen zi:");
scanf("%ld",&c);
printf("shu ru di er ge shu de fen mu:");
scanf("%ld",&d);
if(!d) {printf("error");exit(0);}
getchar();
printf("shu ru yun suan fu:");
scanf("%c",&op);
f1();
f2();
printf("jie guo shi %ld/%ld\n",y,x);
getch();
}
int f1()
{switch(op)
{case '+':x=b*d;y=a*d+b*c;break;
case '-':x=b*d;y=a*d-b*c;break;
case '*':x=b*d;y=a*c;break;
case '/':x=b*c;y=a*d;break;
default:printf("op illegal\n");exit(0);
}
return 1;
}
int f2()
{int i,j,t;
i=x>y?x:y;
j=x+y-i;
t=i%j;
while(t)
{i=j;
j=t;
t=i%j;
}
x=x/j;
y=y/j;
}
展开全部
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
long int up1,down1,up2,down2;//输入的两个数
long int up3,down3; //结果
char op[2];
int GCD(int a,int b) //最大公约数
{
int t;
while(b)
{
t = a;
a = b;
b = t % b;
}
return a;
}
int LCM(int a,int b) //最小公倍数
{
int t = GCD(a,b);
return t * (a / t) * (b / t);
}
int f1()
{
switch(op[0])
{
case '+':
down3 = LCM(down1,down2);
up3 = up1 * (down3 / down1) + up2 * (down3 / down2);
break;
case '-':
down3 = LCM(down1,down2);
up3 = up1 * (down3 / down1) - up2 * (down3 / down2);
break;
case '*':
down3 = down1 * down2;
up3 = up1 * up2;
break;
case '/':
down3 = down1 * up2;
up3 = up1 * down2;
if(down3 == 0)
exit(0);
break;
default:break;
}
return 0;
}
int f2()
{
int gcd = GCD(down3,up3);
down3 /= gcd;
up3 /= gcd;
return 0;
}
int main()
{
scanf("%ld/%ld%ld/%ld%s",&up1,&down1,&up2,&down2,op);
if(down1 == 0 || down2 == 0)
exit(0);
f1();
f2();
printf("%ld/%ld\n",up3,down3);
return 0;
}
#include<string.h>
#include<stdlib.h>
long int up1,down1,up2,down2;//输入的两个数
long int up3,down3; //结果
char op[2];
int GCD(int a,int b) //最大公约数
{
int t;
while(b)
{
t = a;
a = b;
b = t % b;
}
return a;
}
int LCM(int a,int b) //最小公倍数
{
int t = GCD(a,b);
return t * (a / t) * (b / t);
}
int f1()
{
switch(op[0])
{
case '+':
down3 = LCM(down1,down2);
up3 = up1 * (down3 / down1) + up2 * (down3 / down2);
break;
case '-':
down3 = LCM(down1,down2);
up3 = up1 * (down3 / down1) - up2 * (down3 / down2);
break;
case '*':
down3 = down1 * down2;
up3 = up1 * up2;
break;
case '/':
down3 = down1 * up2;
up3 = up1 * down2;
if(down3 == 0)
exit(0);
break;
default:break;
}
return 0;
}
int f2()
{
int gcd = GCD(down3,up3);
down3 /= gcd;
up3 /= gcd;
return 0;
}
int main()
{
scanf("%ld/%ld%ld/%ld%s",&up1,&down1,&up2,&down2,op);
if(down1 == 0 || down2 == 0)
exit(0);
f1();
f2();
printf("%ld/%ld\n",up3,down3);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询