1 条题解

  • 0
    @ 2025-4-12 21:52:30

    C :

    #include<stdio.h>
    #include<stdlib.h>
    #include<math.h>
    int main()
    {
      int n;
      long long int a,b,c,d;
      double s,x1,x2;
      scanf("%d",&n);
      while(n--){
        scanf("%lld %lld %lld",&a,&b,&c);
        if(a){
        d=b*b-4*a*c;
        if(d<0)printf("-1\n");
        else if(d==0)printf("x=%.2lf\n",(-b)/(2.0*a));
          else printf("x1=%.2lf,x2=%.2lf\n",(-b-sqrt(1.0*d))/(2.0*a),(-b+sqrt(1.0*d))/(2.0*a));}
        else{
          if(b)printf("x=%.2lf\n",(-c)/(1.0*b));
        }
      }
    }
    

    C++ :

    #include<iostream>
    #include<cmath>
    #include <cstdio>
    using namespace std;
    class Root
    {
        int a,b,c;
    public:
        Root(int aa,int bb,int cc):a(aa),b(bb),c(cc) {}
        Root() {}
        void result();
    };
    void Root::result()
    {
        if(a==0)
            printf("x=%.2f\n", -c*1.0/b);
        else {
            double delta=b*b-4*a*c;
            if (0 == delta)
                printf("x=%.2f\n", -b/(2.0*a));
            else if (delta < 0)
                puts("-1");
            else {
                delta = sqrt(delta);
                printf("x1=%.2f,x2=%.2f\n", (-b-delta)/(2.0*a), (-b+delta)/(2.0*a));
            }
        }
    }
    int main()
    {
        //freopen("test.in", "r", stdin);
        //freopen("test.out", "w", stdout);
        int aa,bb,cc,t;
        cin >> t;
        while (t--) {
            cin>>aa>>bb>>cc;
            Root x(aa,bb,cc);
            x.result();
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    2099
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者