C語言的小問題,怎麼看都沒錯啊,怎麼算出來不對呢,大家幫看看哈

時間 2021-10-30 04:45:48

1樓:傑釧數控

你的這個程式存在幾個問題

1,a,b.c的變數型別不正確,為了計算結果的精度要統一為float。

2,一元二次方程有實數解的條件沒有給出。

下面我把你的程式修改了一下,我執行了有解。你可以試試。

#include"stdio.h"

#include"math.h"

void main()

else

printf("該方程無實數解!");

scanf("%d",&a);

}else

printf("該方程無實數解!");

scanf("%d",&a);}

2樓:匿名使用者

都定義成float就好了。

3樓:戀衣豬豬

將x,y定義成double型別的就可以了,因為sqrt函式針對的是對double型進行的操作

4樓:匿名使用者

條件是b*b-4*a*c>0

5樓:匿名使用者

看你的執行環境吧,我也遇到同樣的問題,如果你是在linux環境下執行的話,編譯的時候應該寫成 cc 檔名.c -lm

#include在其他的編譯環境下是可以的,linux就加 -lm

6樓:手機使用者

為何要用這麼麻煩的步驟呢?

7樓:

其實我也沒有看出什麼錯,是不是輸入資料本來就是沒有解的?如果沒法編譯的話嘗試把void改為int。我看真的沒有問題~!

8樓:蓿靈

程式是沒錯,但是你這樣寫的程式已在無形中限定了輸入條件:b*b-4ac>=0和a!=0;只要你輸入的係數值滿足上述兩個條件是沒錯的。

下面給你一個可以計算一元二次方程的程式(對輸入條件無限制),你可以參考一下:

#include "stdio.h"

#include "math.h"

main()

else}}

9樓:匿名使用者

你沒有考慮到算術運算中的型別轉換吧。。。你把a,b,c均定義為整型變數,在運算中都以整型進行運算,結果當然不會是想要的,把那個4改為4.0 或把2改為2.

0,這樣結果就應該是你想要的了

怎麼看算出來的結果,我不會看,怎麼看八字算出來的結果,我不會看

致遠 出自諸葛亮的 誡子書 非淡泊無以明志,非寧靜無以致遠 俊馳 出自成語 俊才星馳 雨澤 恩惠像雨一樣多 燁磊 光明磊落 晟睿 晟 是光明 興盛的意思,讀sh ng 睿 是智慧的意思 天佑 生來就有上天庇佑的孩子 文昊 昊的字意是 廣大無邊 修潔 修 形容身材修長高大,潔 整潔 黎昕 黎 黎明昕 ...

C語言裡5 3的值 是怎麼算出來的

橘落淮南常成枳 在c語言裡!的意思是 非 5 3就是5非等於3,就是5不等於3,這邏輯是對的,所以值是1 如果為3!3的話,值就為0了。是c語言中的非運算子,在變數前面使用它,會構建非運算表示式,表示式的返回結果是個布林值 也就是隻有true或false 對變數使用時,如果變數不是布林資料型別,將會...

C語言中8!這樣算出來是怎麼是負數

8 40320 如果用int 型別來存放階乘的答案的話,由於它超過了16位整型數能表示的最大值32767,所以就發生了資料的 溢位 所以答案就出錯了。這時,只要採用大一點的 long 型別 只是修改用來表示階乘的變數的型別就可以了 就可以避免發生這樣的問題。while i 8 中 要求 i必須小於8...