c語言程式糾錯

時間 2022-07-11 12:00:02

1樓:匿名使用者

樓上兩位說的對,不過你們估計沒有具體的編譯過,其實還有兩個小問題

1. x=-b/(2*a)+(sqrt(b*b-4*a*c))/(2*a);

y=-b/(2*a)-(sqrt(b*b-4*a*c))/(2*a);

這兩句用到了sqrt()函式,它的原型為double sqrt(double x);即輸入輸出都是雙精度,所以x,y,a,b,c的定義都必需用雙精度,否則會有一個強制轉換的警告,相應的printf和scanf的呼叫中就應用%lf比用%f更好

2. 從程式的效率上看程式中兩次三次計算b*b-4*a*c是一種浪費,雖然在這個小程式中不明顯,所以建議用一個變數delta代替即可。程式上來就是輸入三個變數顯得不太人性話建議加幾句

以下是我修改後的程式,已經在vc6.0上執行通過,並且試驗了a=1 b=4 c=4的情況下x=-2.0000,y=-2.0000的正確答案

#include

#include

#include

int main()

else

printf("沒有實根\n");

system ("pause");

return 0;}

2樓:匿名使用者

你要好好看一下scanf和printf這兩個函式的用法和格式控制符的含義,

除了2樓說的問題,你的scanf裡面不能有空格或者其他任何東西就是:

scanf("%f%f%f",&a,&b,&c);

3樓:匿名使用者

scanf("%d%d%d",&a,&b,&c);你定義是浮點型的不能用整型輸入,應該改為

scanf("%f%f%f",&a,&b,&c);

輸出是可以用不同的格式輸出的。

4樓:

printf ("x=%f y=%f\n",x,y);

x,y是浮點數。不能%d輸出。

5樓:請叫我蒼穹

3樓正解 其實最主要的還是%f

這個你要注意啊

我就經常錯

C語言糾錯

將樓主的 一下就知道了 第一層t min2 w 第二層t w 上面表示式的計算順序是 1 先計算w 2 再計算 w 3 w 只寫這三層吧,執行順序並不是想象的那樣。巨集不是自己加括號,需要我們自己來加。修改一下 define min2 x,y x define min4 w,x,y,z min2 m...

C語言基本問題糾錯

樓主你好,你的問題主要出在 a int a和printf d n a 這兩句。因為在前面你已經宣告a為float型別了,雖然進行a int a強制型別轉換之後得到了一個整數,但這並沒有改變a的資料型別,所以不能使用 d輸出,建議宣告一個int變數,將 int a賦值給它。a int a 下面是對這句...

C語言程式程式設計,如何編寫C語言程式

把你的思路想好,想要達到什麼樣的功能,思路清晰後就可以一個一個功能的去寫,出錯了不用急,想一下自己錯在什麼地方,好好的看一下 雖然這樣做會花很多 的時間,但是這樣做會提高自己的閱讀分 能力, 牛兒柳兒 啊?書上不是有麼 自己學著寫啊 10.include main printf n 如何編寫c語言程...