作业帮 > 综合 > 作业

JAVA程序求一元二次方程根拜托各位了 3Q

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/06/28 08:53:20
JAVA程序求一元二次方程根拜托各位了 3Q
我这自己编写了一个程序求一元二次方程的根,S=0,S0时不能正常输出结果,import java.util.Scanner; import java.lang.Math; public class shiyan { /** * @param args */ public static void main(String[] args) { int s=0,x1,x2; System.out.println("输入系数 a b c:"); Scanner in=new Scanner(System.in); int a=in.nextInt(); int b=in.nextInt(); int c=in.nextInt(); s = b*b-4*a*c; if(a==0) { System.out.println("二次方程系数a不能为0!"); return; } else if(s==0) { x1 = -b/(2*a); System.out.println("x1="+x1); return; } else if(s>0) { int t = sqrt(s); x1 = (-b+t)/(2*a); x2 = (-b-t)/(2*a); System.out.println("x1="+x1); System.out.println("x2="+x2); return; } else if(s
程序中您自己写的那个 sqrt 方法,返回值都是 0,那怎么行呢.开平方的话直接用 Math.sqrt() 修改如下:import java.util.Scanner; import java.lang.Math; public class shiyan { /** * @param args */ public static void main(String[] args) { double s=0,x1,x2; System.out.println("输入系数 a b c:"); Scanner in=new Scanner(System.in); double a=in.nextInt(); double b=in.nextInt(); double c=in.nextInt(); s = b*b-4*a*c; if(a==0) { System.out.println("二次方程系数a不能为0!"); return; } else if(s==0) { x1 = -b/(2*a); System.out.println("x1="+x1); return; } else if(s>0) { double t = Math.sqrt(s); x1 = (-b+t)/(2*a); x2 = (-b-t)/(2*a); System.out.println("x1="+x1); System.out.println("x2="+x2); return; } else if(s