考慮以下 C 語言程式片段,執行後 data[]的內容,下列何者正確? int data[]={10,20,30,40,50},n=5,i; for(i=0;i<n/2;i++){ data[n-i-1]+=data[i]; data[i]=data[n-i-1]-data[i]; data[n-i-1]-=data[i]; }
A10,20,30,40,50
B50,40,30,20,10正確答案
C50,30,10,20,40
D30,20,10,40,50
答案與詳解
三行 +=、-=、-= 等同於 swap(data[i], data[n-i-1]),i 從 0 跑到 1(n/2=2),交換 (0,4)、(1,3),中間 index 2 不動,結果為 50,40,30,20,10。
