java中关于一元二次方程求根的问题

import java.util.Scanner; // scanner 是干什么用的?是不是有要用户输入的时候就在前面加这个呢?

public class SolveEquation{

public static void main(String[] args) {
double a, b, c; // 这里为什么要用double? 用int 可以么?
Scanner scanner = new Scanner(System.in); // 这个是什么意思? 前面的scanner 为什么要连续写两遍?

System.out.println("请输入一元二次方程的三个系数,数与数之间用空格分隔。");
a = scanner.nextDouble(); // 这三行就完全看不懂了。。
b = scanner.nextDouble();
c = scanner.nextDouble();

if (a==0){
if (b==0)
if (c==0)
System.out.println("x 可以是任意值。");
else
System.out.println("本方程无解。");
else
System.out.println("本方程有一个解,值为" + (-c/b) + "。");
}
else{
double delta = b*b - 4*a*c; // delta是什么东西? 可以直接拿过来用的么?
if (delta<0)
System.out.println("本方程无实数解。");
else{
double x1 = (-b + Math.sqrt(delta))/(2*a);
double x2 = (-b - Math.sqrt(delta))/(2*a);
if (x1!=x2)
System.out.println("本方程有两个解,分别为 " + x1 + " 和 " + x2);
else
System.out.println("本方程有一个解,值为 " + x1);
}

}
}

}

老师上java课的时候讲的例题,我从来没有学过这个,老师也没有讲基础,所以我完全跟不上呐,拜托大家帮帮忙吧。。。

import java.util.Scanner;//这个是导入java包,因为你在这后面中用到Scanner类
double a, b, c; // 这里为什么要用double? 用int 可以么?
方程的解不见得全是int吧,用double更准确
Scanner scanner = new Scanner(System.in); //第一个Scanner是类名系统给定的是你要调用的一个类,第二个scanner是变量名,是自己定义的,也就是说你可以把他取成别的名字也行
a = scanner.nextDouble(); // 这三行就完全看不懂了。。
b = scanner.nextDouble();
c = scanner.nextDouble();
//获取用户输入的3个double型的数,前面的Scanner类就是用来获取用户输入的
double delta = b*b - 4*a*c; // delta是什么东西? 可以直接拿过来用的么?
delta同样是自己定义的变量,后面的b*b - 4*a*c是判断方程有几个跟的表达式,这句就是把b*b - 4*a*c的值赋给你自己定义的变量delta。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-23
Scanner scanner = new Scanner(System.in); 是从控制台读用户的输入的
a = scanner.nextDouble();
b = scanner.nextDouble();
c = scanner.nextDouble();
这三个就是你从控制台输入的3个系数
double delta = b*b - 4*a*c; delta是用来判断是不是有根
第2个回答  2012-10-21
其实我也是不懂啊。。
相似回答