这是学校的问题,我需要写一种方法来找到真正的根源。我的程序当前可以正常工作,但是现在我需要将两个根作为数组返回,并对其进行概括,因此当a等于0时,该方法应返回一个数组,该数组包含一个元素,并带有-c / b,如果a = b = c = 0我的方法应该引发异常。
public class Quadratic {
public static void main(String args[]) {
Quadratic obj = new Quadratic();
int a = 1, b = -6, c = 12;
obj.findRoots(a, b, c);
}
public void findRoots(int a, int b, int c) {
// If a is 0, then equation is not
// quadratic, but linear
if (a == 0) {
throw new IllegalArgumentException("a = 0");
}
int d = b * b - 4 * a * c;
double sqrt_val = sqrt(abs(d));
if (d > 0) {
System.out.println("Roots are real and different \n");
System.out.println((double) (-b + sqrt_val) / (2 * a) + "\n" + (double) (-b - sqrt_val) / (2 * a));
} else {
return;
}
}
}
我可以简单地将变量转换为数组吗?我们只是从数组的一章开始,我必须想办法。
答案 0 :(得分:0)
只需将结果存储到数组即可。
double root[2]={0.0,0.0};
root[0]=(-b + sqrt_val) / (2 * a);
root[1]=(-b - sqrt_val) / (2 * a);
然后退货!
public double[] findRoots(int a, int b, int c){
...
return root;
}