#include
int main(){
void inv(int x[],int n);
int i,a[10]={1,2,3,4,5,6,7,8,9,0};
for(i=0;i<10;i++)printf("%d\n",a[i]);
inv(a,10);
printf("after change:\n");
for(i=0;i<10;i++)printf("%d\n",a[i]);
return 0;
}
void inv(int x[],int n){
int temp,i,j,m = n-1/2;
for(i=0;i<=m;i++){
j = n-1-i;
temp = x[i];
x[i] = x[j];
x[j] = temp;
}
return;
}
代碼如圖,想要把數組倒序排列,可是沒有實現。還有想請問在INV的for循環裡可不可以換成,for(i=0,j=n-1;i<=m;i++,j--)?如果不可以是為什麼噢?
萬分感謝!
第一: 將 #include 改為 #include
第二:將 m = n-1/2 改為 m = (n-1)/2
只要將第一個和倒數第一個
第二個和倒數第二個
第三個和倒數第三個
。。。。
進行交換就行
當正數n和倒數的n相同時,就不能在繼續交換了,否則就會得到沒有交換的結果。
例如:有三個數據要交換
你只要交換第一個和倒數第一個就可以了,中間一個可以不交換
即可!!!!!!