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...