这个问题我之前发过。但是对它进行了巨大的编辑。由于我的 java 代码未编译,因此想寻求帮助以纠正我的步骤。
编写一个 printRoots 方法,给定 3 个项作为输入,依次表示 a、b 和 c,打印它们的根。
我们有以下给定的信息
**如果 b²-4ac 是正数,您的程序应打印“两个根是 X 和 Y”,其中 X 是较大的根,Y 是较小的根
如果 b²-4ac等于 0,程序应该打印。“方程有一个 X”,其中 X 是唯一的根
如果 b²-4ac 是负数,程序应该打印。” 该方程有两个根 (-X1 + Y1i) 和 (-X2 and Y2i) * *
该术语可以根据以下条件确定:
如果 b^2 - 4ac 是负数,则二次方程变为: (-b+/- √C)/2a - 这意味着方程可以简化为 (-b+/- √Ci)/2a,其中平方根不是正数计算系数并打印(即X1是-b/2a,Y1是sqrt(-C)/2i)
注意:这个问题不允许使用扫描仪
有人可以查看我的程序并告诉我哪里出了问题,我是否可以删除我的扫描仪以使其成为没有扫描仪的程序?那我如何输入a,b,c?
请注意:您不应该在此方法中使用 Scanner。要测试您的方法,您可以在 main 方法中使用 SCanner,或者您可以将值从 main 方法硬编码到您的代码中,然后使用这些输入或输出调用方法 printRoots。
import java.util.Scanner;//delete this part after
public class findingRoots {
public static void main(String[] args)
{
}
public static double printRoots (){ //should it be double here or int?
//read in the coefficients a,b,and c
Scanner reader = new Scanner(System.in);
System.out.println("Enter the value of a");
int a=reader.nextInt();
System.out.println("Enter the value of b");
int b=reader.nextInt();
System.out.println("Enter the value of c");
int c=reader.nextInt();
//now compte the discrimintat d
double discriminant = (Math.pow(b, 2.0)) - (4 * a * c);
d=Math.sqrt(discriminant);
double X,Y; //root 1 & root 2, respectively
// is the step double X,Y necessary?
double d = (b*b)-(4.0*a*c);
if (discriminant > 0.0){
X = (-b + d)/(2.0 * a ); //X= root 1, which is larger
**//do i put int or double in front of X?**
Y = (-b - d)/(2.0 *a); //Y= root 2, which is the smaller root
String root1 = Double.toString(X)
String root2 = Double.toString(Y)
System.out.println("The two roots are X and Y:" + root1 + "and" + root2);
}
else{
if (discriminant==0.0)
X = (-b + 0.0)/(2.0 * a);//repeated root
String root2 = Double.toString(X)
System.out.println("The equation has one root X:" + root1);//where X is the only root
}
if(discriminant < 0.0){
X1 = -b/(2*a);
Y1 = (Math.sqrt(-C))/(2*a);
X2 = -b/(2*a);
Y2 = (-(Math.sqrt(-C)))/(2*a);
String root1 = Double.toString(X1)
String root2 = Double.toString(Y1)
String root3 = Double.toString(X2)
String root4 = Double.toString(Y2)
System.out.println("The equation has two roots:" + (root1 + (root2)"i") "and" + (root3 + (root4)"i");
// where i represents the square root of negative 1
}
}
}