#7855: Java - 用BufferedReader 顯示 NA


kaka80409 (Budont)

學校 : 不指定學校
編號 : 33224
來源 : [59.127.143.65]
最後登入時間 :
2014-03-21 11:31:53
a006. 一元二次方程式 | From: [59.127.143.65] | 發表日期 : 2013-06-15 18:31

心血來潮想用一下 BufferedReader 卻出現 "程式無法正常結束"

改用Scanner 就OK...

這是甚麼問題呢?

==========================================
第 1 測資點(20%): RE (code:1)
執行時期錯誤

您的程式被監控系統中斷,可能是程式無法正常結束所導致。 Exception in thread "main" java.lang.NullPointerException 	at code_1505452.main(code_1505452.java:18)
==========================================
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Java {

static int judg=0;
static int Ans1=0, Ans2=0;

public static void main(String[] args) {

BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
String[] input = null;
int a=0, b=0, c=0;

try {
while(true){
String test = buf.readLine();
input = test.split("\\s");
a = Integer.parseInt(input[0]);
b = Integer.parseInt(input[1]);
c = Integer.parseInt(input[2]);
judg = b*b-4*a*c;
Ans1 = (int)(-b+ Math.sqrt((double)judg))/(2*a);
Ans2 = (int)(-b- Math.sqrt((double)judg))/(2*a);
check();
}

} catch (IOException e) {
e.printStackTrace();
}

}

public static void check(){

if(judg >0)
System.out.println("Two different roots x1="+ Ans1+ " , x2="+ Ans2);
else if(judg ==0)
System.out.println("Two same roots x="+ Ans1);
else
System.out.println("No real root");
}
}

 
 
ZeroJudge Forum