#3621: 第一個測試點一直錯...


Chunyusu (Edmond)

學校 : 國立彰化師範大學
編號 : 10705
來源 : [111.253.19.253]
最後登入時間 :
2014-10-25 23:11:52
a006. 一元二次方程式 | From: [120.107.174.108] | 發表日期 : 2010-04-06 15:45

請各位大大幫個忙~

 以下是我的程式碼

 #include<iostream>
#include<cmath>


using namespace std;

double abc(double a,double b,double d){
    double x,y,temp;
   
    x=(-b+(int)sqrt(d))/(2*a);
    y=(-b-(int)sqrt(d))/(2*a);
   
    if(x==-0)
             x=0;
    if(y==-0)
             y=0;

    if(x==y)
        cout<<"Two same roots x="<<x<<endl;
    else{
        if(x<y){
          temp=y;
          y=x;
          x=temp;
        cout<<"Two different roots x1="<<x<<" , x2="<<y<<endl;
        }
    }
}

main(){
    double a,b,c,d=0;
   
    while(cin>>a>>b>>c){
      d=b*b-4*a*c;
     
      if(d>=0)
       abc(a,b,d);
      else
       cout<<"No real root"<<endl;
    }
}

 

 為何第一個測試點一直無法通過??

*** 第 1 點 (20%):WA (line:1)
您的程式未完成所有的輸出!!(line:1)
您只輸出了 0 行!
可能的原因為
* 未用 while 迴圈讀取全部的測試資料,以致輸出短少,請參考 a001 範例程式。
* 程式未充分考慮所有邊界值而導致程式提前中止

 

 
#3622: Re:第一個測試點一直錯...


linishan (L)

學校 : 國立交通大學
編號 : 1090
來源 : [104.132.150.102]
最後登入時間 :
2019-05-10 19:57:54
a006. 一元二次方程式 | From: [125.228.222.189] | 發表日期 : 2010-04-08 18:30

    if(x==y)
        cout<<"Two same roots x="<<x<<endl;
    else{
        if(x<y){
            cout<<"Two different roots x1="<<x<<" , x2="<<y<<endl;
        }

        應該移到這裡 (當x>y你的程式不會輸出)
    }

你應該是不小心把那條放到裡面 ..

 

 
#3623: Re:第一個測試點一直錯...


Chunyusu (Edmond)

學校 : 國立彰化師範大學
編號 : 10705
來源 : [111.253.19.253]
最後登入時間 :
2014-10-25 23:11:52
a006. 一元二次方程式 | From: [120.107.174.108] | 發表日期 : 2010-04-10 01:19

    if(x==y)
        cout<<"Two same roots x="<<
    else{
        if(x
            cout<<"Two different roots x1="<<<" , x2="<<
        }

        應該移到這裡 (當x>y你的程式不會輸出)
    }

你應該是不小心把那條放到裡面 ..

 

恩恩解決了~

 

謝謝~! 

 
ZeroJudge Forum