int型別變數,scanf c時錯誤原因

2021-10-23 05:10:17 字數 757 閱讀 3606

今天在群裡就乙個問題展開了熱烈**

一位同仁的**因為有一句

int a,b,c,a=0,b=0,c=0;

scanf("%d %d %d\n%c%c%c",&a,&b,&c,&a,&b,&c);

而出現了c值錯誤,那麼問題到底在**呢?(不禁在廁所沉沉思索起來)

中間經歷的很多波折,偶然發現每個人的錯誤值不同,轉換為二進位制發現低位的1b是準確的。

修改**賦初值或全域性變數後,答案正確。

說明在scanf %c可以輸入字元以整型儲存,但是對高位位元組不會進行操作,所以無初值的高位就會出現野值。

收穫頗豐,因為以前沒想過這種問題,只按部就班,每個敢於試錯的人都是值得稱讚的(在此表達對重慶王老師的讚美!並向王老師學習,對學生的錯誤**不要一棍子打死,要深入探索)

這是乙個曾經只知其然的問題,我是乙個按部就班的人,今天,在神奇的境遇下提公升了自己的理解和學習態度。

Unity 遍歷int型別列舉變數的結果

對列舉變數設定了不同的int數值的時候,實際上對應列舉變數的索引順序發生了改變 普通列舉變數 int i 0 foreach actionstr step in enum.getvalues typeof test enum system.serializable public enum test ...

關於C語言交換兩個int型別變數的討論

c語言中交換兩個int型別變數有以下幾種方法 1 使用第三方變數 int main int a 10 int b 20 int temp temp a a b b temp 2 不使用第三方變數 使用加減法 int main int a 10 int b 20 a a b b b a a b a 3...

初始載入時把字串,也就是 轉化為int型別

int?s int?e if string.isnullorempty smallbonuspointnumber s null else s int.parse smallbonuspointnumber if string.isnullorempty bigbonuspointnumber e ...