我的代碼旨在反向打印數組,但由於某種原因,遞減運算符未按預期工作。根據我的理解,--var
在完成任何事情之前遞減變量var
,而var--
在操作完成後遞減變量var
,例如for
循環。遞減運算符的奇怪行爲
這裏是我的代碼:
#include <iostream>
int main() {
int arrLen;
int arr[4];
scanf("%d\n %d %d %d %d", &arrLen, &arr[0], &arr[1], &arr[2], &arr[3]);
for (; arrLen >= 0; --arrLen)
printf("%d %d\n", arr[arrLen], arrLen);
return 0;
}
這裏是我的結果(在輸出正確的價值是遞減的變量,我添加它來檢查):
0 4
2 3
3 2
4 1
1 0
沒有遞減變量正在打印它應該是:
0 2 3 4 1
這裏是我的預計業績:
2 3 4 1
爲什麼使用 「\ n」 在scanf()函數? –
@ M.SChaudhari檢查一個int後跟一個\ n –
這個問題是如何得到3的選票我不明白.... – ZivS