我很抱歉请求帮助,可能是基本的,但是,我尝试了每一个谷歌和YouTube的帖子(在我的水平),我似乎不明白。我试图做一个方法,返回我的根的多项式的第3次幂。代码可以单独工作;然而,当我试图放入一个返回函数时,我将返回值设为一个数组(因为将有3个根,也就是3个值要返回)。当我这样做的时候,我在返回函数旁边得到了一个错误,说["不兼容的类型:double[]不能被转换为double"]
public class RootFinder {
double[] roots = new double[3];
double R(double a, double pa, double b, double pb, double c, double pc, double d, double rp4){
/*Scanner sc = new Scanner(System.in);*/
double dx, dc, root, root1 = 0, root2;
double r1, r2, r3, remmainder, rp1, rp2, rp3;
System.out.println("Enter the quotient coefficients followed by their power:");
for(double i = -10; i<= 12; i++){
dx = 1;
dc = i;
root = (-1*dc)/dx;
r1 = a;
r2 = (root*a)+b;
r3 = (root*r2)+c;
rp1 = pa-1;
rp2 = pb-1;
rp3 = pc-1;
remmainder = (root*r3)+d;
if(remmainder == 0){
System.out.print("The Division equatates to: ");
roots[2] = ((-1*r2) + Math.sqrt((Math.pow(r2, 2)-(4*r1*r3))))/(r1*2); //quadratic formula (first root)
roots[3] = ((-1*r2) - Math.sqrt((Math.pow(r2, 2)-(4*r1*r3))))/(r1*2); //quadratic formula (second root)
//System.out.println("("+dx+"x"+dc+")"+"("+"x"+(double)root[2]+")"+"("+"x"+(double)root[3]+")");
roots[1] = (dc*-1); // factor theorem a value (first root)
break;
}
}
return roots; }
}
非常感谢你的帮助,我已经花了5天的时间来解决这个问题,但我不明白该怎么解决。(我甚至尝试在每一个双数旁边加上"[]",但没有任何效果)
谢谢你,亚历杭德罗
你只需要使用'double[]'而不是'double',因为你想返回一个数组而不是一个单一的值。所以,你应该写这样的东西。
double[] R(double a, double pa, double b, double pb, double c, double pc, double d, double rp4){ ....}
我提到了你试图不正确地访问数组中的值, 在Java中数组的索引是从0开始的, 所以要访问数组中的第一个值 你必须写array[0]而不是array[1].
你的方法声明中指定了一个类型为 double
不过 roots
属于 double[]
即一个双数组。
方法声明中提到的返回类型与你试图返回的类型不匹配。
试着把你的方法声明改成this-。
double[] R(double a, double pa, double b, double pb, double c, double pc, double d, double rp4) {
//Your method code here
}