第 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;
}
求解!!!
第 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;
}