搜Test30009能搜到题,我打不下了只能删了题,这个已经做了3个小时了,TT,真真是做了一宿,总是提醒我“Thelocalvariablex1maynothavebeeninitialized”,但是我不知道要怎么改诶,请...
搜Test30009 能搜到题,我打不下了只能删了题,这个已经做了3个小时了,T T,真真是做了一宿,总是提醒我“The local variable x1 may not have been initialized”,但是我不知道要怎么改诶,请求指点!这种跟数学有关的,电脑总是担心等于0的问题好像,这种要怎么解决呢?
import java.util.Scanner;
public class Test30009{
public static void main(String args[]){
int repeat, ri;
int a,b,c,d;
double x1,x2;
Scanner in=new Scanner(System.in);
repeat=in.nextInt();
for(ri = 1; ri <= repeat; ri++){
a=in.nextInt();b=in.nextInt();c=in.nextInt();
/*---------*/
if (a==0 && b==0 && c==0)
System.out.println("meaningless");
else if (a==0 && b==0 &&c!=0)
System.out.println("error");
else if (a==0 && b!=0){
x1=(double)-c/b;
System.out.println("x="+x1);}
else if (a!=0 && b!=0){
d=b*b-4*a*c;
if (d>=0)
x1=(-b+Math.sqrt(d))/(2*a);
x2=(-b-Math.sqrt(d))/(2*a);
System.out.println("x1="+Math.round(x1*100)/100.0); /*这行总会提示我X1没被initialized*/
System.out.println("x2="+Math.round(x2*100)/100.0);}
else {
x1=(double)-b/(2*a);
x2=Math.sqrt(-d)/(2*a); /*这行是说d没被initialed*/
System.out.println("x1="+Math.round(x1*100)/100.0+"+"+Math.round(x2*100)/100.0);
System.out.println("x2="+Math.round(x1*100)/100.0+"-"+Math.round(x2*100)/100.0);}
}}}
展开