#25428: ?????


antony9399@gmail.com (03楊騏安)


#include <iostream>

#include <math.h> 

using namespace std;

 

int main()

{

int a,b,c,d;

float x1,x2;

cin a,b,c;

d=b*b-4*a*c;

x1=(-b+sqrt(d)/2*a)

x2=(-b-sqrt(d)/2*a)

 

if(sqrt(d)>0)

cout<<"Two different roots x1="<<x1<<" , x2="<<x2<<endl;

 

else if(sqrt(d)==0)

cout<<"Two same roots x="<<x1<<endl;

cout<<"No real root"

}

#25446: Re:?????


Tamilala (Tamilala不是星導夢女)


#include <iostream>

#include <math.h>

using namespace std;

 

int main()

{

int a,b,c,d;

float x1,x2;

cin a,b,c;

d=b*b-4*a*c;

x1=(-b+sqrt(d)/2*a)

x2=(-b-sqrt(d)/2*a)

 

if(sqrt(d)>0)

cout<<"Two different roots x1="<<x1<<" , x2="<<x2<<endl;

 

else if(sqrt(d)==0)

cout<<"Two same roots x="<<x1<<endl;

cout<<"No real root"

}

 

首先,第9行

cin a,b,c;

這裡,用cin輸入的用法應該是

cin>>變數1>>變數2......>>變數n;

所以應該改成

cin>>a>>b>>c;

 

再來,這裡

x1=(-b+sqrt(d)/2*a)

x2=(-b-sqrt(d)/2*a)

後面都沒有分號喔

 


還有最後幾行

else if(sqrt(d)==0)

cout<<"Two same roots x="<<x1<<endl;

cout<<"No real root"

這裡,應該是

else if(sqrt(d)==0) cout<<"Two same roots x="<<x1<<endl;

else cout<<"No real root";

這樣吧?

因為如果按原本這樣寫,不管怎樣都會在最後輸出一個"No real root"

所以應該要加上一個判斷,就是如果(sqrt(d)==0)跟(sqrt(d)==0)都不成立,也就是判別式小於0時才輸出"No real root"

 

大致這樣,希望有解決你的問題!

 

另外記得養成個好習慣,在主函式結束時加上一個

return 0;

來告訴電腦你這隻程式執行完沒有問題ㄛ。

可以參考這篇:www. itread01.com/content/1505890834. html

#25447: Re:?????


Tamilala (Tamilala不是星導夢女)


#include<iostream>

#include <math.h>

using namespace std;

 

int main()

{

int a,b,c,d;

float x1,x2;

cin a,b,c;

d=b*b-4*a*c;

x1=(-b+sqrt(d)/2*a)

x2=(-b-sqrt(d)/2*a)

 

if(sqrt(d)>0)

cout<<"Two different roots x1="<<x1<<" , x2="<<x2<<endl;

 

else if(sqrt(d)==0)

cout<<"Two same roots x="<<x1<<endl;

cout<<"No real root"

}

 

首先,第9行

cin a,b,c;

這裡,用cin輸入的用法應該是

cin>>變數1>>變數2......>>變數n;

所以應該改成

cin>>a>>b>>c;

 

再來,這裡

x1=(-b+sqrt(d)/2*a)

x2=(-b-sqrt(d)/2*a)

後面都沒有分號喔

 


還有最後幾行

else if(sqrt(d)==0)

cout<<"Two same roots x="<<x1<<endl;

cout<<"No real root"

這裡,應該是

else if(sqrt(d)==0) cout<<"Two same roots x="<<x1<<endl;

else cout<<"No real root";

這樣吧?

因為如果按原本這樣寫,不管怎樣都會在最後輸出一個"No real root"

所以應該要加上一個判斷,就是如果(sqrt(d)==0)跟(sqrt(d)==0)都不成立,也就是判別式小於0時才輸出"No real root"

 

大致這樣,希望有解決你的問題!

 

另外記得養成個好習慣,在主函式結束時加上一個

return 0;

來告訴電腦你這隻程式執行完沒有問題ㄛ。

可以參考這篇:www. itread01.com/content/1505890834. html


ㄌㄩㄝˋ打錯,是(sqrt(d)>0)跟(sqrt(d)==0)都不成立

 

另外還有一個問題,在這裡

x1=(-b+sqrt(d)/2*a)

x2=(-b-sqrt(d)/2*a)

原本公式應該是 (-b+判別式) 除以 (2a) 嘛

但是按你這樣寫會變成 (-b) 加上 (判別式除以2a) ,因為c++會按照四則運算的規則

先處理 sqrt(d) / 2*a ,也就是先乘除,在處理 -b + ...... 的部分,因為後加減

所以正確寫法要加上括號,也就是這樣

x1=( (-b + sqrt(d) ) / 2*a )

x2=( (-b - sqrt(d) ) / 2*a )

要記得善用括號喔!

#25448: Re:?????


Tamilala (Tamilala不是星導夢女)


#include

#include

using namespace std;

 

int main()

{

int a,b,c,d;

float x1,x2;

cin a,b,c;

d=b*b-4*a*c;

x1=(-b+sqrt(d)/2*a)

x2=(-b-sqrt(d)/2*a)

 

if(sqrt(d)>0)

cout<<"Two different roots x1="<<x1<<" , x2="<<x2<<endl;

 

else if(sqrt(d)==0)

cout<<"Two same roots x="<<x1<<endl;

cout<<"No real root"

}

 

首先,第9行

cin a,b,c;

這裡,用cin輸入的用法應該是

cin>>變數1>>變數2......>>變數n;

所以應該改成

cin>>a>>b>>c;

 

再來,這裡

x1=(-b+sqrt(d)/2*a)

x2=(-b-sqrt(d)/2*a)

後面都沒有分號喔

 


還有最後幾行

else if(sqrt(d)==0)

cout<<"Two same roots x="<<x1<<endl;

cout<<"No real root"

這裡,應該是

else if(sqrt(d)==0) cout<<"Two same roots x="<<x1<<endl;

else cout<<"No real root";

這樣吧?

因為如果按原本這樣寫,不管怎樣都會在最後輸出一個"No real root"

所以應該要加上一個判斷,就是如果(sqrt(d)==0)跟(sqrt(d)==0)都不成立,也就是判別式小於0時才輸出"No real root"

 

大致這樣,希望有解決你的問題!

 

另外記得養成個好習慣,在主函式結束時加上一個

return 0;

來告訴電腦你這隻程式執行完沒有問題ㄛ。

可以參考這篇:www. itread01.com/content/1505890834. html


ㄌㄩㄝˋ打錯,是(sqrt(d)>0)跟(sqrt(d)==0)都不成立

 

另外還有一個問題,在這裡

x1=(-b+sqrt(d)/2*a)

x2=(-b-sqrt(d)/2*a)

原本公式應該是 (-b+判別式) 除以 (2a) 嘛

但是按你這樣寫會變成 (-b) 加上 (判別式除以2a) ,因為c++會按照四則運算的規則

先處理 sqrt(d) / 2*a ,也就是先乘除,在處理 -b + ...... 的部分,因為後加減

所以正確寫法要加上括號,也就是這樣

x1=( (-b + sqrt(d) ) / 2*a )

x2=( (-b - sqrt(d) ) / 2*a )

要記得善用括號喔!


我又打錯了:P

 

所以正確寫法要加上括號,也就是這樣

x1=( (-b + sqrt(d) ) / 2*a )

x2=( (-b - sqrt(d) ) / 2*a )

要記得善用括號喔!」

 

我兩行都忘記加上分號ㄌ

總之應該是

x1=( (-b + sqrt(d) ) / 2*a ) ;

x2=( (-b - sqrt(d) ) / 2*a ) ;

抱歉連續打錯兩次><