Java的二次公式布局
我在NAN和Real roots的位置上遇到了问题。以下是我的结果截图: 这就是我想做的:Java的二次公式布局,java,Java,我在NAN和Real roots的位置上遇到了问题。以下是我的结果截图: 这就是我想做的: 提示用户输入二次方程的系数,并以标准形式打印出方程:ax^2+bx+c=0(2分) 计算方程的根。如果a=0,则打印一条消息,指示该方程不是有效的二次方程。否则,根据二次公式的判别式计算根 当判别式为非负时,打印出实根。注意:先打印较小的根。当判别式为负时,分别计算复数根的实部和虚部,然后以标准复数“a+bi”形式打印根。注意:先用+bi打印复数根。(8个临时秘书处) 公共类{ 公共静态void ma
- 提示用户输入二次方程的系数,并以标准形式打印出方程:ax^2+bx+c=0(2分)
- 计算方程的根。如果
,则打印一条消息,指示该方程不是有效的二次方程。否则,根据二次公式的判别式计算根a=0
- 当判别式为非负时,打印出实根。注意:先打印较小的根。当判别式为负时,分别计算复数根的实部和虚部,然后以标准复数“a+bi”形式打印根。注意:先用+bi打印复数根。(8个临时秘书处)
公共类{ 公共静态void main(字符串[]args){ java.util.Scanner输入=新的java.util.Scanner(System.in); double a=input.nextDouble(); double b=input.nextDouble(); double c=input.nextDouble(); 双判别式=数学功率(b,2)-4*a*c; System.out.println(“a:”); System.out.println(“b:”); System.out.println(“c:”); 系统输出println(“方程:“+a+”x^2+”+b+”x+“+c+”=0”); //如果a=0,则打印一条消息,指示该方程式不是有效的二次方程式。 如果(a==0){ System.out.println(“无效的二次方程”); } //当判别式为非负时,打印出实根。 如果(判别式>0){ System.out.println(“实根:”; 双根1=(-b+数学功率(判别式,0.5))/(2*a); 双根2=(-b-数学功率(判别式,0.5))/(2*a); System.out.println(“x=“+root2”); System.out.println(“x=“+root1”); } //当判别式为负时,分别计算复数根的实部和虚部。 if(判别式<0){ System.out.println(“复数根:”); 双r1=-b/(2*a); 双r2=数学sqrt(-discriminant)/(2*a); System.out.println(“x=“+r1+”+“+r2+”i”); System.out.println(“x=“+r1+”-“+r2+”i”); } } }
else
,非负应包括0,如下所示:
if (a == 0) {
System.out.println("Invalid quadratic equation.");
} else if (discriminant >= 0) { // non-negative
System.out.println("Real root(s):");
...
} else {
System.out.println("Complex roots:");
...
当这或那是要遵循的条件时,使用
else
,非负应包括0,如下所示:
if (a == 0) {
System.out.println("Invalid quadratic equation.");
} else if (discriminant >= 0) { // non-negative
System.out.println("Real root(s):");
...
} else {
System.out.println("Complex roots:");
...
第一个问题:即使方程不是二次方程(
a==0
),也要继续计算和显示根
第二个问题:您排除了discriminant==0
的情况,方法是取discriminant<0
表示复数根,取discriminant>0
表示实根
处理这两个问题的正确逻辑是:
if (a == 0) {
// it's not a quadratic: give message
}
else {
if (discriminant < 0) {
// compute and display complex roots
}
else { // disciminant is zero or greater...
// compute and display real roots
}
}
if(a==0){
//这不是一个二次型:传递信息
}
否则{
if(判别式<0){
//计算并显示复数根
}
否则{//disciminant为零或更大。。。
//计算并显示实根
}
}
第一个问题:即使方程不是二次方程(a==0
),也要继续计算和显示根
第二个问题:您排除了discriminant==0
的情况,方法是取discriminant<0
表示复数根,取discriminant>0
表示实根
处理这两个问题的正确逻辑是:
if (a == 0) {
// it's not a quadratic: give message
}
else {
if (discriminant < 0) {
// compute and display complex roots
}
else { // disciminant is zero or greater...
// compute and display real roots
}
}
if(a==0){
//这不是一个二次型:传递信息
}
否则{
if(判别式<0){
//计算并显示复数根
}
否则{//disciminant为零或更大。。。
//计算并显示实根
}
}
谢谢,将其更改为“else if(discriminant>=0){”解决了问题。如果我不处理最后一句话,这两种说法都可以!Serang Cool,如果可以接受它作为答案的话。:)谢谢,将其更改为“else if(discriminant>=0){”解决了。如果我不去管最后一句话,这两句话都可以!@Serang Cool,如果这有助于接受它作为答案的话。:)