#10741: 錯誤在哪裡??


ssuyung (suyung)

學校 : 不指定學校
編號 : 55901
來源 : [1.164.122.198]
最後登入時間 :
2022-07-12 20:18:47
a006. 一元二次方程式 | From: [118.166.182.187] | 發表日期 : 2016-02-28 23:30

第 1 測資點(20%): WA (line:1)
答案不正確

您的答案為: Two different roots x1=25,x2=1
正確答案為: Two different roots x1=3 , x2=2

第 2 測資點(20%): AC (0ms, 112KB)
通過檢測

 

第 3 測資點(20%): AC (0ms, 84KB)
通過檢測

 

第 4 測資點(20%): AC (0ms, 120KB)
通過檢測

 

第 5 測資點(20%): AC (0ms, 116KB)
通過檢測

 

 

#include <stdlib.h>
#include <math.h>
int main()
{
int a,b,c;
while(scanf("%d %d %d",&a,&b,&c)!=EOF)
{
if(b*b-4*a*c>0)
printf("Two different roots x1=%d, x2=%d",(-b+sqrt(b*b-4*a*c))/(2*a),(-b-sqrt(b*b-4*a*c))/(2*a));
if(b*b-4*a*c==0)
printf("Two same roots x=%d",(-b)/(2*a));
if(b*b-4*a*c<0)
printf("No real root");
}
return 0;
}

 

求解!!!

 

 
#10808: Re:錯誤在哪裡??


d2513850 (林勇智)

學校 : 崑山科技大學
編號 : 5102
來源 : [114.140.72.110]
最後登入時間 :
2024-10-20 17:35:39
a006. 一元二次方程式 | From: [219.68.157.233] | 發表日期 : 2016-03-26 15:30

第 1 測資點(20%): WA (line:1)
答案不正確

您的答案為: Two different roots x1=25,x2=1
正確答案為: Two different roots x1=3 , x2=2

第 2 測資點(20%): AC (0ms, 112KB)
通過檢測

 

第 3 測資點(20%): AC (0ms, 84KB)
通過檢測

 

第 4 測資點(20%): AC (0ms, 120KB)
通過檢測

 

第 5 測資點(20%): AC (0ms, 116KB)
通過檢測

 

 

#include
#include
int main()
{
int a,b,c;
while(scanf("%d %d %d",&a,&b,&c)!=EOF)
{
if(b*b-4*a*c>0)
printf("Two different roots x1=%d, x2=%d",(-b+sqrt(b*b-4*a*c))/(2*a),(-b-sqrt(b*b-4*a*c))/(2*a));
if(b*b-4*a*c==0)
printf("Two same roots x=%d",(-b)/(2*a));
if(b*b-4*a*c<0)
printf("No real root");
}
return 0;
}

 

求解!!!

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main(void){
    double a,b,c,d,r[2];/*這裡要用雙精度浮點數(因d要存入判別式的值)*/
    while(scanf("%lf %lf %lf",&a,&b,&c)!=EOF){
        if(a!=0){/*若a!=0*/
            d=pow(b,2.0f)-4.0f*a*c;/*先算d(判別式)*/
            if(d>0){/*d>0*/
                r[0]=(-b+pow(d,0.5f))/(2.0f*a);/*r[0]存正根,r[1]存負根*/
                r[1]=(-b-pow(d,0.5f))/(2.0f*a);
                printf("Two different roots x1=%d , x2=%d\n",((int)r[0]),((int)r[1]));/*再轉成int輸出*/
            }else if(d==0){/*d==0*/
                r[0]=(-b-pow(d,0.5f))/(2.0f*a);/*r[0]==r[1]*/
                printf("Two same roots x=%d\n",((int)r[0]));/*再轉成int輸出*/
            }else{/*d<0*/
                printf("No real root\n");/*無實根*/
            }
        }else{/*若a==0,該方程式為一元一次方程式*/
            if(b!=0){/*若b!=0*/
                r[0]=-c/b;/*r[0]==r[1]*/
                printf("Two same roots x=%d\n",((int)r[0]));/*再轉成int輸出*/
            }else{/*若b==0*/
                printf("No real root\n");/*無實根*/
            }
        }
    }
    return 0;
}



 
ZeroJudge Forum