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);
}
}
這裏我寫了一個代碼來檢查是否給定了具有係數a,b,c的二次方程的N個輸入,然後有多少個給定的N個輸入具有實根。 此代碼編譯儘可能好,但始終會導致ans = 0。在這種情況下,計數不起作用。來檢查有多少個根是真實的
count = count ++'沒有任何 - >'count = count + 1'或'count ++'only;)讀取後增量 – azro
'count = count ++;'是無意義的 - 它將舊的count值存入臨時位置,遞增計數1並用舊值覆蓋它。或者寫'count = count + 1;'或'count ++;'或者甚至'count + = 1;' –
如果b²-4∙a∙c小於零,根將會有一個非零的虛部。您也沒有像@yshavit指出的那樣正確計算平方根,但您不需要查看根是否是真實的 - 測試平方根的值是否爲負值與測試平方根的值是否更容易導致NaN –