我一直致力于一个项目,以标准形式从输入的二次方程中找到根和判别。我试图从等式中拉出系数。我想我已经设置了系数(A,B,C)的位置,但是我无法从用户输入中获取实际数字。 (最后一段代码是我想要找到的CoeffA int。我留下了CoeffB和CoeffC以节省空间。)任何帮助或提示清理我的代码并从用户输入中提取系数将会很多赞赏。我在使用字符串方面遇到了很多麻烦。感谢
import java.math.*;
import java.util.Scanner;
public class QuadProject2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int CoeffA=0;
int CoeffB=0;
int CoeffC=0;
double root1;
double root2;
double disc;
double root1new;
double root2new;
final String SENTINEL = "quit";
do{
System.out.println("Enter a quadratic equation in standard form");
String quad=sc.nextLine();
if(quad.equals("quit")){
break;
}
while (!quad.equals((SENTINEL)));
if(quad != "quit" || quad == "0"){
**int pos = quad.indexOf("x");
int pos2 = quad.indexOf("x", pos);
int pos3 = quad.indexOf("=");
//This should extract the a,b,and c coefficients from the user entry
*int CoeffA=(0,pos);*
if(CoeffA>0){
double a=Double.parseDouble(CoeffA);
}
if(CoeffA==0){
return int 1;
}
if(CoeffA<0){
return int -1;
}****
答案 0 :(得分:0)
在我看来:
System.out.println("Enter a quadratic equation in standard form");
String quad=sc.nextLine();
会更好:
System.out.print("Enter a quadratic equation coefficients (separated by spaces): ");
double a=sc.nextDouble();
double b=sc.nextDouble();
double c=sc.nextDouble();
这样,您就不必将字符串输入转换为数字。这一切都是为你完成的。如果你想循环,那很好。但是,在尝试循环之前,请确保它适用于单次迭代。确保添加足够的非数字值处理等。