首页  :: 联系 :: 订阅 订阅  :: 管理

0705卷

Posted on 2007-07-09 16:41  。。。  阅读(166)  评论(0)    收藏  举报
//用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();  
}