java分数除法分子为零,高手来帮帮忙啊,一个很简单的java问题

import java.io.*;

public class Fraction{

int f1,f2; //f1为分子,f2为分母

Fraction(int f1, int f2){

try{

if(f2==0){

System.out.println("分母不能为0,请重置分母值");

f2=System.in.read();

}

}catch(Exception ex){System.out.println(ex.toString());}

this.f1=f1;

this.f2=f2;

}

public int gongyueshu(int a, int b){ //求最大公约数方法

int r,temp;

if(a

temp=a;

a=b;

b=temp;

}

while((r=a%b)!=0){

a=b;

b=r;

}

return b;

}

public int gongbeishu(int a,int b){ //求最小公倍数

return a*b/gongyueshu(a,b);

}

public void add(Fraction f1,Fraction f2){ //分数加法运算,f1,f2分别为两个分数实例

int fenzi,fenmu;

fenmu=gongbeishu(f1.f2,f2.f2);

fenzi=gongbeishu(f1.f2,f2.f2)/f1.f2*f1.f1+gongbeishu(f1.f2,f2.f2)/f2.f2*f2.f1;

System.out.println(f1.f1+"/"+f1.f2+"+"+f2.f1+"/"+f2.f2+"="+fenzi/gongyueshu(fenzi,fenmu)+"/"+fenmu/gongyueshu(fenzi,fenmu));

}

public void minu(Fraction f1,Fraction f2){ //分数减法运算,f1,f2分别为两个分数

int fenzi,fenmu;

fenmu=gongbeishu(f1.f2,f2.f2);

fenzi=gongbeishu(f1.f2,f2.f2)/f1.f2*f1.f1-gongbeishu(f1.f2,f2.f2)/f2.f2*f2.f1;

System.out.println(f1.f1+"/"+f1.f2+"-"+f2.f1+"/"+f2.f2+"="+fenzi/gongyueshu(fenzi,fenmu)+"/"+fenmu/gongyueshu(fenzi,fenmu));

}

public void muti(Fraction f1,Fraction f2){ //分数乘法运算,f1,f2分别为两个分数

int fenzi,fenmu;

fenzi=f1.f1*f2.f1;

fenmu=f1.f2*f2.f2;

System.out.println(f1.f1+"/"+f1.f2+"×"+f2.f1+"/"+f2.f2+"="+fenzi/gongyueshu(fenzi,fenmu)+"/"+fenmu/gongyueshu(fenzi,fenmu));

}

public void devide(Fraction f1,Fraction f2){ //分数除法运算,f1,f2分别为两个分数

int fenzi,fenmu;

fenzi=f1.f1*f2.f2;

fenmu=f1.f2*f2.f1;

if(fenmu!=0)

System.out.println(f1.f1+"/"+f1.f2+"÷"+f2.f1+"/"+f2.f2+"="+fenzi/gongyueshu(fenzi,fenmu)+"/"+fenmu/gongyueshu(fenzi,fenmu));

else

System.out.println("分母为0,无意义.");

}

public void fudian(Fraction f1) { //以浮点数打印分数

double result;

result=(double)f1.f1/(double)f1.f2;

System.out.println(f1.f1+"/"+f1.f2+"="+result);

}

public static void main(String args[]){

Fraction f1=new Fraction(1,5);

Fraction f2=new Fraction(1,2);

f1.add(f1,f2);

f1.minu(f1,f2);

f1.muti(f1,f2);

f1.devide(f1,f2);

f1.fudian(f1);

f2.fudian(f2);

}

}

[此贴子已经被作者于2007-4-13 13:35:40编辑过]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值