//用C 语言编写函数,实现两个分数的加减乘除,并输出约分后的结果
#include<stdio.h>
//全局变量
int denominator1,denominator2,numerator1,numerator2;
//表示计算后分数的分母和分子
int resdenominator,resnumerator;
//计算运算后所得分数的分子分母
//运算符
char op;
//运算得出最后的分数
void compute()
{
switch(op)
{
case '+':
resdenominator=denominator1*numerator2+denominator2*numerator1;
resnumerator=numerator1*numerator2;
break;
case '-':
resdenominator=denominator1*numerator2-denominator2*numerator1;
resnumerator=numerator1*numerator2;
break;
case '*':
resdenominator=denominator1*denominator2;
resnumerator=numerator1*numerator2;
break;
case '/':
resdenominator=denominator1*numerator2;
resnumerator=numerator1*denominator2;
break;
}
}
//对所得结果的分子分母进行约分
void divisor()
{
int i;
do
{
if(resdenominator>resnumerator)
i=resnumerator;
resdenominator/=i;
resnumerator/=i;
}while(i>1);
}
int main()
{
do
{
printf("请输入2个分数运算:\n");
scanf("%d/%d%c%d/%d",&denominator1,&numerator1,&op,&denominator2,&numerator2);
if(numerator1==0 && numerator2==0)
{
printf("你输入的数字有误,请重新输入!\n");
continue;
}
if(denominator2==0)
{
printf("除数不能为0,请重新输入!\n");
}
}while((numerator1==0 && numerator2==0) || denominator2==0);
compute();
divisor();
printf("运算结果为:");
printf("%d/%d%c%d/%d=%d",denominator1,numerator1,op,denominator2,numerator2,resdenominator/resnumerator);
getchar();
getchar();
}
#include<stdio.h>
//全局变量
int denominator1,denominator2,numerator1,numerator2;
//表示计算后分数的分母和分子
int resdenominator,resnumerator;
//计算运算后所得分数的分子分母
//运算符
char op;
//运算得出最后的分数
void compute()
{
switch(op)
{
case '+':
resdenominator=denominator1*numerator2+denominator2*numerator1;
resnumerator=numerator1*numerator2;
break;
case '-':
resdenominator=denominator1*numerator2-denominator2*numerator1;
resnumerator=numerator1*numerator2;
break;
case '*':
resdenominator=denominator1*denominator2;
resnumerator=numerator1*numerator2;
break;
case '/':
resdenominator=denominator1*numerator2;
resnumerator=numerator1*denominator2;
break;
}
}
//对所得结果的分子分母进行约分
void divisor()
{
int i;
do
{
if(resdenominator>resnumerator)
i=resnumerator;
resdenominator/=i;
resnumerator/=i;
}while(i>1);
}
int main()
{
do
{
printf("请输入2个分数运算:\n");
scanf("%d/%d%c%d/%d",&denominator1,&numerator1,&op,&denominator2,&numerator2);
if(numerator1==0 && numerator2==0)
{
printf("你输入的数字有误,请重新输入!\n");
continue;
}
if(denominator2==0)
{
printf("除数不能为0,请重新输入!\n");
}
}while((numerator1==0 && numerator2==0) || denominator2==0);
compute();
divisor();
printf("运算结果为:");
printf("%d/%d%c%d/%d=%d",denominator1,numerator1,op,denominator2,numerator2,resdenominator/resnumerator);
getchar();
getchar();
}
浙公网安备 33010602011771号