#10754: 最後一的測資過不了用float可是找不到bug


40375025H (eric)

學校 : 國立臺灣師範大學
編號 : 43789
來源 : [140.122.79.54]
最後登入時間 :
2017-07-24 19:27:41
a006. 一元二次方程式 | From: [60.245.65.133] | 發表日期 : 2016-03-04 21:22

#include <stdio.h>
#include <math.h>
int main(){
float a, b, c, D, S, x, x1, x2;

while(~scanf("%f %f %f", &a, &b ,&c)){

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

if(D > 0){
x1 = sqrt(D)/2*a - b/2*a;
x2 = -(b + sqrt(D))/2*a;
printf("Two different roots x1=%.0f , x2=%.0f\n", x1, x2);
}
else if(D == 0){

x =-b/2*a;
if(x == -0){
printf("Two same roots x=0\n");
}
else{

printf("Two same roots x=%.0f\n", x);
}
}
else{
printf("No real root\n");
}
}
return 0;
}

 
#10757: Re:最後一的測資過不了用float可是找不到bug


anandrewboy70900 (ShowTsai)

學校 : 國立中央大學
編號 : 27736
來源 : [203.204.218.144]
最後登入時間 :
2024-10-11 16:21:37
a006. 一元二次方程式 | From: [140.115.205.175] | 發表日期 : 2016-03-05 12:10

#include
#include
int main(){
float a, b, c, D, S, x, x1, x2;

while(~scanf("%f %f %f", &a, &b ,&c)){

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

if(D > 0){
x1 = sqrt(D)/(2*a) - b/(2*a);
x2 = -(b + sqrt(D))/(2*a);
printf("Two different roots x1=%.0f , x2=%.0f\n", x1, x2);
}
else if(D == 0){

x =-b/(2*a);
if(x == -0){
printf("Two same roots x=0\n");
}
else{

printf("Two same roots x=%.0f\n", x);
}
}
else{
printf("No real root\n");
}
}
return 0;
}




 
ZeroJudge Forum