Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

Aaron 發問時間: 電腦與網際網路程式設計 · 2 0 年前

怎麼解虛根?

int a,b,c;

cin>>a>>b>>c;

float x1,x2;

x1=(-b+sqrt(pow(b,2)-4*a*c))/(2*a);

x2=(-b-sqrt(pow(b,2)-4*a*c))/(2*a);

cout<<x1<<'\n'<<x2;

----------------------------------------------------

以上是小弟打的函數

但小弟還不熟悉 虛根

有哪為大大可以幫小弟解惑

輸入:1 2 2

輸出:1+i ,1-i

1 個解答

評分
  • 2 0 年前
    最佳解答

    #include <iostream>

    int main(void){

    ........int a, b, c;

    ........int i_flag=0;

    ........double delta;

    ........double tmp;

    ........cin >> a >> b >> c;

    ........delta=(b*b)-(4*a*c);

    ........if(delta<0){

    ................i_flag=1;

    ................delta*=(-1);

    ........}

    ........tmp=sqrt(delta);

    ........if(i_flag==0){

    ................cout << "x1= "<<(-b+tmp)/2/a<<endl;

    ................cout << "x2= "<<(-b-tmp)/2/a<<endl;

    ........}else{

    ................tmp=tmp/2/a;

    ................if(tmp!=0){

    ........................if(tmp!=1){

    ................................cout << "x1= " << (-b/2/a) << "+"<< tmp << 'i'<< endl;

    ................................cout << "x2= " << (-b/2/a) << "-"<< tmp << 'i'<< endl;

    ........................}else{

    ................................cout << "x1= " << (-b/2/a) << "+i"<<endl;

    ................................cout << "x2= " << (-b/2/a) << "-i"<<endl;

    ........................}

    ................}else{

    ........................cout << "x1=" << (-b/2/a) << endl;

    ........................cout << "x2=" << (-b/2/a) << endl;

    ................}

    ........}

    }

還有問題?馬上發問,尋求解答。