#10959: c++,3,5測資點過不了,求解


yeawe99k88g (PerpLeXc)

學校 : 國立臺灣科技大學
編號 : 56864
來源 : [140.118.71.78]
最後登入時間 :
2018-10-10 19:53:00
a006. 一元二次方程式 | From: [36.232.39.158] | 發表日期 : 2016-05-28 11:05

#include<iostream>
#include<cstdlib>
#include<math.h>
using namespace std;
int main ()
{
int a,b,c,d,e; //e:判別根的性質
int x,y;
cin >>a>>b>>c;
d=(b*b)-(4*a*c);
if(d>>0) //相異實根
e=1;
else if(d==0) //重根
e=2;
else if(d<<0) //無實根
e=3;
if(e==1)
{x=((-b)+sqrt(d))/2;
y=((-b)-sqrt(d))/2;
cout<<"Two different roots x1="<<x<<" , x2="<<y<<endl;}
else if(e==2)
{x=((-b)+sqrt(d))/2;
cout<<"Two same roots x=" <<x<<endl;}
else if(e==3)
cout<<"No real root"<<endl;
return 0;
}

 

請問這樣錯在哪

 
#10961: Re:c++,3,5測資點過不了,求解


jim861026 (你沒有妹妹 所以才在這打程式)

學校 : 國立臺灣大學
編號 : 56002
來源 : [140.112.241.64]
最後登入時間 :
2017-04-19 00:59:51
a006. 一元二次方程式 | From: [49.158.183.28] | 發表日期 : 2016-05-28 16:40

#include
#include
#include
using namespace std;
int main ()
{
int a,b,c,d,e; //e:判別根的性質
int x,y;
cin >>a>>b>>c;
d=(b*b)-(4*a*c);
if(d>>0) //相異實根
e=1;
else if(d==0) //重根
e=2;
else if(d<<0) //無實根
e=3;
if(e==1)
{x=((-b)+sqrt(d))/2;
y=((-b)-sqrt(d))/2;
cout<<"Two different roots x1="<<x<<" , x2="<<y<<endl;}
else if(e==2)
{x=((-b)+sqrt(d))/2;
cout<<"Two same roots x=" <<x<<endl;}
else if(e==3)
cout<<"No real root"<<endl;
return 0;
}

 

請問這樣錯在哪

if(d>>0)改成 if(d>0)
if(d<<0)改成 if(d<0)

只有=在判斷時要兩個

 

 
ZeroJudge Forum