java test30009_请求帮忙解答一个JAVA题,Test30009,一元二次方程ax2+bx+c=0的根。

搜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);}

}}}

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值