[問題] 一元二次方程式
#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時候答案會正確
有人可以幫我解答錯在哪嗎? 謝謝
一開始在猜是因為abc另為int 結果兩個令成double也是不行
程式的底子很淺 現在想要回來再練練 發現通通幾乎忘光光@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.161.184
推
08/16 16:24, , 1F
08/16 16:24, 1F
→
08/16 16:30, , 2F
08/16 16:30, 2F
→
08/16 16:34, , 3F
08/16 16:34, 3F
→
08/16 18:13, , 4F
08/16 18:13, 4F
推
08/16 19:40, , 5F
08/16 19:40, 5F
→
08/16 22:19, , 6F
08/16 22:19, 6F
→
08/16 22:27, , 7F
08/16 22:27, 7F
→
08/16 22:29, , 8F
08/16 22:29, 8F
→
08/17 02:35, , 9F
08/17 02:35, 9F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章