检查有多少根真实

时间:2017-08-15 13:57:55

标签: java java-8

import java.util.Scanner;
public class FileOutputStreamExample
{
  public static int count;

  public void equation(int a, int b,int c)
  {

    int e=(b*b)-(4*a*c);
    double f=Math.pow(e,1/2);
    if(f>=0)
        count=count++;

  }
 public static void main (String []args)
 {
    FileOutputStreamExample fos= new FileOutputStreamExample();
    Scanner sc= new Scanner(System.in);
    int N= sc.nextInt();
    for(int i=1;i<=N;i++)
    {
       int a= sc.nextInt();
       int b= sc.nextInt();
       int c= sc.nextInt();
       fos.equation(a, b, c);
    }

    System.out.println("ans is "+count);
   }
}

这里我正在编写一个代码来检查给定N个输入的二次方程是否具有系数a,b,c然后有多少给定的N个输入具有实根。 此代码编译尽可能好,但始终导致ans = 0。在这种情况下,计数不起作用。

2 个答案:

答案 0 :(得分:4)

count=count++;

这条线实际上什么也没做。它递增count,但它也返回一个值作为表达式,然后将其存储回count。由于++在最后,所存储的值是count的原始值,因此撤消增量。 :)

使用递增(或递减)运算符时,不必使用赋值运算符来修改该值。增量本身意味着对变量的修改。

通过将其更改为:count++;

进行修复

除此之外,1/2将始终等于零,因为操作数是整数,因此,应用的除法是整数除法(截断小数部分)而不是除法可能期待。

将其更改为1.0/2.5

答案 1 :(得分:0)

我不认为你的代码应该被编译。您正在非静态方法中调用静态变量。 此外,写入计数++,计数+ = 1或计数=计数+ 1。