小弟最近在搞这个java的学习,刚入门就被这个一元二次方程K倒了。。
各位帮忙看看吧,编了1个小时了,还是没编译出来,错误无限要求:
/*
*编写一个程序求一元二次方程ax2+bx+c=0的解,a、b、c从键盘输入要求讨论下述情况:
* b*b-4*a*c=0,有两个相等实根
* b*b-4*a*c>0,有两个不等实根
* b*b-4*a*c<0,无实根
* a=0,不是二次方程式
*/当符合b*b-4*a*c>0,要求能正常输出2个值。
各位帮忙看看吧,编了1个小时了,还是没编译出来,错误无限要求:
/*
*编写一个程序求一元二次方程ax2+bx+c=0的解,a、b、c从键盘输入要求讨论下述情况:
* b*b-4*a*c=0,有两个相等实根
* b*b-4*a*c>0,有两个不等实根
* b*b-4*a*c<0,无实根
* a=0,不是二次方程式
*/当符合b*b-4*a*c>0,要求能正常输出2个值。
解决方案 »
- ibatis简单例子求助。
- 菜鸟问题 希望不吝赐教啊
- java 如何判断某一字符是否存在在指定的字符串中
- 新手提问
- 求助,一道算法题,ACM的,TILE TOPOLOGY
- 关于JAVA安装和卸载的问题
- private static Soup ps1 = new Soup();的问题,请进
- 传值 or 传址 ?
- 急!!!!!请问装完idea后,选择File -> Open Project出现的中文字符为乱码,该如何解决?
- File read/write
- hibernate 使用update是抛出异常:Batch update returned unexpected row count from update:
- 又是String问题
public class jie {
public static void main(String [] args){
double a;
double b;
double c;
boolean flag=true;
Scanner input=new Scanner(System.in);
System.out.print("请输入a的值:");
a=input.nextDouble();
System.out.print("请输入b的值:");
b=input.nextDouble();
System.out.print("请输入c的值:");
c=input.nextDouble();
if(a==0){
System.out.println("此方程不是二次方程式");
flag=false;
}
double d=b*b-4*a*c;
if(flag){
if(d>0){
System.out.println("有两个不等的实根");
double x1=(-b+Math.sqrt(d))/(2*a);
double x2=(-b-Math.sqrt(d))/(2*a);
System.out.print("x1="+x1+"\nx2="+x2);
}else if(d==0){
System.out.println("有两个相等的实根");
double x1=(-b+Math.sqrt(d))/(2*a);
System.out.print("x1=x2="+x1);
}else{
System.out.println("无实根");
}
}
}
}
java和C、C++很相似,不是很难!import java.io.*;
public class test {
public static void main(String args[]) {
int a,b,c;
double root1,root2;
try{
BufferedReader stdin = new BufferedReader
(new InputStreamReader(System.in));
System.out.print("请输入a =\t" );
a = Integer.parseInt(stdin.readLine());
System.out.print("\n请输入b =\t" );
b = Integer.parseInt(stdin.readLine());
System.out.print("请输入c =\t" );
c = Integer.parseInt(stdin.readLine());
if(a == 0){
System.out.println("方程ax2+bx+c=0不是二次方程式!");
if(b == 0){
if(c == 0){
System.out.println("方程有无数解!");
}
else{
System.out.println("方程无解!");
}
}
else{
System.out.println("The root is:" + ((-c)/b));
}
}
else{ //a != 0
System.out.println("方程ax2+bx+c=0是一元二次方程!");
if(b*b - 4*a*c <0){
System.out.println("一元二次方程ax2+bx+c=0无实根!");
}
else if(b*b - 4*a*c ==0){
root1 = (-b)/(2*a);
System.out.println("一元二次方程ax2+bx+c=0有两个相等的实根!The root is:" + root1);
}
else{
root1 = ((-b)-Math.sqrt(b*b - 4*a*c))/(2*a);
root2 = ((-b)+Math.sqrt(b*b - 4*a*c))/(2*a);
System.out.println("一元二次方程ax2+bx+c=0有两个不等的实根!The one root is:"
+ root1+"\tThe another root is:" + root2);
}
}
}
catch(Exception e){
System.out.println(e);
}
}}
免得重复计算!