哪里错了?
查看原帖
哪里错了?
357900
猜一猜我是谁楼主2021/10/17 10:23
#include<bits/stdc++.h>
using namespace std;
long double a,b,c,x1,x2;
void print(long double u){
    if(u=-0.0000000000) u=0.0000000000;
    printf("%.10lf\n",u);
}
int main(){
    cin>>a>>b>>c;
    if(!a&&!b&&!c) cout<<-1;
    else if(!a&&!b&&c) cout<<0;
    else if(!a&&b){
        x1=(-c)/b;
        cout<<"1\n";
        print(x1);
    }
    else if(!a&&!c) cout<<"1\n",print(0);
    else if(a&&!b&&!c) cout<<"1\n",print(0);
    else{
        double d=b*b-4*a*c;
        if(d<0) cout<<0;
        else if(d==0) cout<<"1\n",print(-b/(2*a));
        else{
            x1=(-b+sqrt(d))/(2*a);
            x2=(-b-sqrt(d))/(2*a);
            if(x2<x1) swap(x1,x2);
            cout<<"2\n",print(x1),print(x2);
        }
    }
}
2021/10/17 10:23
加载中...