c語言的迷惑,c語言的乙個迷惑

時間 2021-09-02 01:36:10

1樓:匿名使用者

是正確的,1/2=0,如果寫成1.0/2結果就是0.5,前面沒錯就是27.優先順序是先乘除,後加減,型別轉換順序是double<-float<-int

按你的例子來說:

先看優先順序/比+要高,先算/,但有3個/,按照從右至左的順序,就是先算1/2.

1,2都是整型,1/2的結果也是整型

然後是n*a/b,還是從右至左順序,先算a/b,a,b是浮點型,結果就是float型,a/b的結果又和n相乘,a/b的結果是float型,按照型別轉化順序要將n轉化成float再計算,結果是float型

同理,m/2的結果是3.

然後是加法,就不羅嗦了,還是按從右至左的順序計算計算過程:

1/2=0

a/b=6.000000

6.00000*n=24.000000

m/2=3

0+24.0000=24.00000

24.00000+3=27.000000

看在我打了這麼多字的份上以及是第乙個回答你問題的份上,把分給我吧

2樓:我就不用百_度

從左往右算,還有算術優先順序

m/2 = 3 (整型)

n*a/b = 24.000000 (全部轉為float計算)1/2 = 0 (整型)

最後計算全部轉為float

型別轉換的問題,整形和整形計算,結果為整型,所以不會有小數字,當和float計算時就轉成float型

3樓:

m/2=3

n*a/b=24

1/2=0

所以x=27

4樓:容光光

本來就是27嘛。仔細算算

c語言的問題,C語言的一個問題

這是中國mooc上的題目吧,你的程式其實是正確的。知道為何 說 格式錯誤 了嗎?include int main 上面這個程式經驗證是可通過的。include int main 而原先我的這個程式卻不行!0分!覺得明明是同一套程式吧,他喵的我發現運算子與變數之間要空格,評分系統才認你的程式,等號兩邊...

C語言問題,乙個C語言問題

錯誤是 d 了 因為陣列名s,代表字串陣列的首位址,s指向的位址就是s 0 的位址。gets s 正確則gets s 0 也是正確的,所以 a,c 正確。而scanf s s 1 實際上只是不從s 0 開始,而是從s 1 開始賦值而已,既然只輸給它5個字元,所以從s 1 開始賦值也不會過界,則b是正...

C語言問題,乙個C語言問題

include void main printf 它們的和為 d sum include int main if i 3 0 return 0 include main printf n printf sum d sum system pause include int main printf su...