[問題] 新手C語言一元二次方程式

看板C_and_CPP作者 (謝餅乾)時間11年前 (2012/10/20 15:03), 編輯推噓1(104)
留言5則, 4人參與, 最新討論串1/1
小弟是大一新生 剛接觸C語言 老師派的作業是寫一個能解一元二次方程式 並且b^2-4ac < 0要能顯示出虛根 爬文根GOOGLE找到的都是直接寫沒有實根 然後我又剛好卡在這塊 我是使用Microsoft Visual C++ 2010 Express 以下是程式碼 #include <stdio.h> #include <stdlib.h> #include <math.h> int main(void){ float a=0; float b=0; float c=0; double r1,r2,i1,delt; printf("請依序輸入一元二次方程式(a*x^2+b*x+c=0)的三個整數a,b,c(以逗點區隔 ):"); scanf("%f,%f,%f",&a,&b,&c); delt=b*b-4*a*c; if (delt>0){ r1=((-b)+sqrt(delt))/2/a; r2=((-b)-sqrt(delt))/2/a; printf("方程式具有相異實根為x1=%f和x2=%f.\n",r1,r2); } else if(delt==0){ r1=(-b)/2/a; printf("方程式具有重根為x=%f",r1); } else{ printf("方程式具有共軛複根為x1=%f+%fi和r2=%f-%fi.\n",r1,i1,r1,i1); } system("pause"); return 0; } 執行的時候前面兩個都能 但卡在最後的虛根那邊 都會跳出 Run-Time Check Failure #3 - The variable 'i1' is being used without being initialized. 煩請解答 一直想不通@@ -- 作者 MAXQb (Qoo) 看板 Gossiping 標題 [問卦]有無東方人拼的要死,但還是輸西方人的八卦!? 時間 Wed Oct 27 20:25:47 2010

10/27 20:26,
我們睡覺的時候人家在工作的勒
10/27 20:26
....我們在工作時他們也在睡覺啊,你再說什麼屁話啊!? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.135.26.104 ※ 編輯: Pro80 來自: 140.135.26.104 (10/20 15:05)

10/20 15:10, , 1F
在你最後的else裡面,r1,i1的值都沒有計算
10/20 15:10, 1F

10/20 15:10, , 2F
你從來沒有指派值給 i1 啊
10/20 15:10, 2F
有點不懂 r1 i1不是顯示用出來之後的答案嗎 ? ※ 編輯: Pro80 來自: 140.135.26.104 (10/20 15:13)

10/20 15:19, , 3F
il 沒有被賦值啊
10/20 15:19, 3F
所以要怎麼改才好.... ※ 編輯: Pro80 來自: 140.135.26.104 (10/20 15:26)

10/20 15:34, , 4F
r1=((-b)+sqrt(delt))/2/a; // <--- 這行叫做對 r1 賦值
10/20 15:34, 4F

10/20 15:35, , 5F
你要類似上面那樣對 i1 賦值啊, 不然你印的東西是哪來的
10/20 15:35, 5F
喔喔 我大概懂了 可是前面兩個卻跑得出來欸@@ ※ 編輯: Pro80 來自: 140.135.26.104 (10/20 16:05) 小的眼殘沒有發現我沒寫出來.... ※ 編輯: Pro80 來自: 140.135.26.104 (10/20 16:06)
文章代碼(AID): #1GWapHs7 (C_and_CPP)