Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:计算给定多项式根的麻烦_Java_Arrays_Function_For Loop_Polynomials - Fatal编程技术网

Java:计算给定多项式根的麻烦

Java:计算给定多项式根的麻烦,java,arrays,function,for-loop,polynomials,Java,Arrays,Function,For Loop,Polynomials,为了计算给定多项式的根,我试图在一个子区间上输入一个for循环,该子区间在指定范围内形成另一个子区间的划分。我的问题是我的“if”和“if else”没有执行,即使条件应该确保它们的执行。我已经在程序的其他部分测试了我的“poly”函数,没有发现任何问题。这是我的麻烦循环 for (int i = L; i < R; i += resolution) { double a = i, b = resolution+i; { if (poly(C, a)*poly(

为了计算给定多项式的根,我试图在一个子区间上输入一个for循环,该子区间在指定范围内形成另一个子区间的划分。我的问题是我的“if”和“if else”没有执行,即使条件应该确保它们的执行。我已经在程序的其他部分测试了我的“poly”函数,没有发现任何问题。这是我的麻烦循环

for (int i = L; i < R; i += resolution) {
       double a = i, b = resolution+i;
       { if (poly(C, a)*poly(C, b) < 0) {
          double mid = findRoot(C, a, b, tolerance);
          System.out.println(mid);
          if (Math.abs(poly(C, mid)) < threshold){
            System.out.println("Root found at: "+mid);
            numCount = 1;
          }
       } else if (poly(D, a)*poly(D, b) < 0) {
          double mid = findRoot(D, a, b, tolerance);
          if(Math.abs(poly(C, mid)) < threshold) {
            System.out.println("Root found at: "+mid);
            numCount = 2;

       } else {
         numCount = 3;
         System.out.println("No roots were found in the specified range.");
       } System.out.println("numCount is "+numCount); break;
     }
  }
for(int i=L;i
您想删除紧跟在单词“if”之前的一组括号。

您有一组多余的括号,应该删除。这些括号使
else if
else
子句适用于内部
if
,这是不正确的:

for (int i = L; i < R; i += resolution) {
   double a = i, b = resolution+i;
   if (poly(C, a)*poly(C, b) < 0) {
      double mid = findRoot(C, a, b, tolerance);
      System.out.println(mid);
      if (Math.abs(poly(C, mid)) < threshold){
        System.out.println("Root found at: "+mid);
        numCount = 1;
      }
   } else if (poly(D, a)*poly(D, b) < 0) {
      double mid = findRoot(D, a, b, tolerance);
      if(Math.abs(poly(C, mid)) < threshold) {
        System.out.println("Root found at: "+mid);
        numCount = 2;

   } else {
     numCount = 3;
     System.out.println("No roots were found in the specified range.");
   } 
   System.out.println("numCount is "+numCount); break;
}
for(int i=L;i
我已经修复了括号中的错误,但是现在在for循环前面的源代码中遇到了一个新问题。输入流closing System.out.println(“输入左端点和右端点:”);L=sc.nextInt();R=sc.nextInt();谢谢!我已经修复了括号中的问题,但是现在遇到了for循环前面的源代码的新问题。我想使用Scanner类分配L和R,即L=Scanner.nextInt()和R=Scanner.nextInt()。输入流在赋值后没有关闭,因此没有进入for循环:System.out.println(“输入左端点和右端点:”;L=sc.nextInt();R=sc.nextInt();for(int i=L;i