首先,我想开始说我是编程的新手,我不太了解。有了这个说我会很感激,如果有人可以帮助我的程序,它应该读取2个分数和一个运算符例如" 2/3 + 4/5"。我已经完成了一些代码,但是当我在这里运行时它仍然给我一个错误是我到目前为止:
public class Fraction {
private static int numer;
private static int denom;
public Fraction(int num, int den)
{
numer = num;
denom = den;
simplify();
}
int findGcd(int a, int b)
{
int temp;
while(b != 0)
{
temp = b;
b = a % b;
a = temp;
}
return a;
}
void simplify()
{
int gcd = findGcd(numer, denom);
numer /= gcd;
denom /= gcd;
}
public int getNumer(){
return numer;
}
public int getDenom(){
return denom;
}
Fraction add(Fraction x) {
Fraction result;
if (x.getDenom()== getDenom()) {
result = new Fraction(x.getNumer() + getNumer(), denom);
} else {
denom = this.getDenom() * x.getDenom();
numer = this.getNumer() * x.getDenom() + x.getNumer() * this.getDenom();
return new Fraction(numer,denom);
}
return result;
}
public String toString(){
return (Integer.toString(numer) + "/" +
Integer.toString(denom));
}
public static void main (String []args){
Fraction a = new Fraction(1,3);
Fraction b = new Fraction(4,5);
System.out.println(a.toString());
System.out.println(b.toString());
}
}
谢谢你的帮助,我真的很感激。
答案 0 :(得分:3)
为什么要制作字段static
? static
字段属于该类,而不是每个实例化(不是您想要的)。尝试删除static
关键字。
另一方面,您提到您想要阅读用户的输入。您可能需要考虑使用Scanner
(如果您还不知道这个方便的类)。
一旦你阅读了2/3 + 4/5
这样的输入,就可以使用空格作为分隔符来分割字符串。现在,您可以解析新形成的字符串数组的第一个(2/3
)和第三个(4/5
)元素,并执行与数组的第二个元素对应的操作({{ 1}})。
答案 1 :(得分:0)
static
变量和instance
变量之间存在差异。
那就是说..你需要稍微修改你的代码..
将班级中的static
个变量更改为instance
变量..
private static int numer;
private static int denom;
以上两个变量应该是实例变量..因此它们对于您为类创建的每个实例都是唯一的。
所以,将它们改为: -
private int numer;
private int denom;
为了阅读用户输入,A.R.S
已经为您提供了valuable
课程的链接..