#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int main(void)
{
int a,b,c;
int sum1=0,sum2=0;
while(scanf("%d %d %d",&a,&b,&c) !=EOF)
{
sum1=(-b+sqrt(b*b-4*a*c))/(2*a);
sum2=(-b-sqrt(b*b-4*a*c))/(2*a);
if(b*b-4*a*c>0)
{
printf("Two different roots x1=%d , x2=%d \n",sum1,sum2);
}
else if(b*b-4*a*c == 0 )
printf("Two same roots x=%d \n",sum1);
else
printf("No real root \n");
}
return 0;
}
我的疑問在上面紅色地方 變數sum1 sum2令為double時候
結果會是錯誤的
但是令為int時候答案會正確
有人可以幫我解答錯在哪嗎? 謝謝