1 solutions

  • 0
    @ 2025-11-5 17:50:58

    C :

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        float a,b,c,disc,x1,x2;
        a=1;b=2,c=-6;
        disc=b*b-4*a*c;
        if(disc>=0)
        {   x1=((-b)+sqrt(disc))/(2.0*a);
           x2=((-b)-sqrt(disc))/(2.0*a);
            printf("%.4f\n",x2);
            printf("%.4f\n",x1);
        }
        else
            printf("无实根\n");
    }
    

    C++ :

    /* ================== Ex 3-18, p59 ================== */
    
    #include <stdio.h>
    #include <math.h>
    
    void root (double a, double b, double c) {
        double tmp, d = b*b + 4*a*c;
        if (a==0.)
    	{
    		if(b==0.) printf("illegal inputs!\n");
    		else printf("%.4f\n", -c/b);
    	}
    
        else if (d > 0) {
            tmp = sqrt(d);
            printf("%.4f, %.4f\n", 
                   (-b - tmp)/2./a, (-b + tmp)/2./a);
        }
        else if (d == 0)
            printf("%.4f\n", -b/2./a);
        else
            printf("no real root\n");
    }
    
    int main() {
        double a,b,c;
        int i,n;
        scanf("%d",&n);
        for(i=1;i<=n;i++) 
        {
    		if((scanf("%lf %lf %lf", &a,&b,&c)!=3)) 
    		{
    			printf("illegal inputs!\n");
    			fflush(stdin);
    		}
        	else root(a, b, c);
    	}
        
    
        return 0;
    }
    
    
    • 1

    Information

    ID
    18624
    Time
    1000ms
    Memory
    56MiB
    Difficulty
    (None)
    Tags
    (None)
    # Submissions
    0
    Accepted
    0
    Uploaded By