qq_我輸過但從未怕過_0
2015-12-13 21:05:02
在數組中的排序中換位為。int temp=num[i];num[i]=num[i+1];num[i+1]=temp; 為什么這里不能寫num[i+1]=num[i];
3 回答
已采納

子木李
TA貢獻46條經驗 獲得超27個贊
樓主需要實現的是數組中交換值吧,在num[i]=num[i+1]的時候,次數num[i]的值已經被num[i+1]替換了,也就是說它原來的值不在了,如果后面再寫num[i+1]=num[i]時,其實num[i+1]的值沒有變化,因為你前面把num[i]的值賦成了i+1的值,所以為了保留num[i]的值,引入一個臨時變量temp,用來保存num[i]的值

Caballarii
TA貢獻1123條經驗 獲得超629個贊
這么說吧,兩個小朋友坐著兩張凳子,他們要交換位置,但不可以站著等,并且一次只能一個小朋友移動。
那么總不能小朋友A不能直接坐到小朋友B身上吧,這樣的話小朋友B就出不來了。
所以正確的方法是搬來第三張凳子,小朋友A去坐第三張,小朋友B坐到小朋友A原來的位置上,小朋友A再從第三張凳子坐到小朋友B原來的位置上。
這里也是一樣的道理。

慕男嬸
TA貢獻98條經驗 獲得超73個贊
因為 = 左邊是要賦的值,= 右邊是接收的值。
在數學中,
a = b?
就等于
b = a
但是在編程中,
num[i+1]=num[i]; // 把num[i]的值賦予num[i+1]
反過來的話,賦值順序就反了
num[i]=num[i+1]; // 把num[i+1]的值賦予num[i]
添加回答
舉報
0/150
提交
取消