判定 ax²+bx+c=0 的方程有无实数根 有的话求解程序制作
c是下面这样换了java改如何编写 请求帮助void fun0(void)
{
 printf("方程无实根\n");
}
void fun1(float a,float b)
{
  printf("x=%f\n",-b/(2*a));
}
void fun2(float a,float b,float delt)
{
  printf("x1=%f\nx2=%f\n",(-b+sqrt(delt))/(2*a),(-b-sqrt(delt))/(2*a));
}
float dlt(float a,float b,float c)
{
 return b*b-4*a*c;
}
int main(void)
{
 float a,b,c,delt;
 scanf("%f%f%f",&a,&b,&c);
 delt=dlt(a,b,c);
 if (delt<0) fun0();
 else if (fabs(delt)<1e-6) fun1(a,b);
 else  fun2(a,b,delt); return 0;
}

解决方案 »

  1.   


    import java.util.Scanner;public class X { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub Scanner in = new Scanner(System.in); double a, b, c, d;
    a = in.nextDouble();
    b = in.nextDouble();
    c = in.nextDouble();
    d = delt(a, b, c);
    if (d < 0)
    function0();
    else if (Math.abs(d) < 1e-6)
    function1(a, b);
    else
    function2(a, b, d);
    } public static double delt(double a, double b, double c) {
    return b * b - 4 * a * c;
    } public static void function0() {
    System.out.println("方程无实根");
    } public static void function1(double a, double b) {
    System.out.println("x = " + -b / 2 / a);
    } public static void function2(double a, double b, double d) {
    System.out.println("x1 = " + (-b + Math.sqrt(d)) / (2 * a) + ", x2 = "
    + (-b - Math.sqrt(d)) / (2 * a));
    }
    }