將陣列a中n個整數按反序存放
阿新 • • 發佈:2019-01-04
陣列實現: #include<stdio.h> int main() { void inv(int x[],int n); int i; int a[10] = {3,7,9,11,0,6,7,5,4,2}; printf("the original array:"); for(i = 0;i < 10;i++) { printf("%5d",a[i]); } printf("\n"); inv(a,10); printf("the array has been inverted:\n"); for(i = 0;i < 10;i++) { printf("%5d",a[i]); } printf("\n"); return 0; } void inv(int x[],int n) { int temp; int i; int j; int 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; } 指標實現: #include<stdio.h> int main() { void inv(int *x,int n); int i; int arr[10]; int *p = arr; printf("the original array:"); for(i = 0;i < 10;i++,p++) { scanf("%d",p); } printf("\n"); p = arr; inv(p,10); printf("the array has been inverted:\n"); for(p = arr;p < arr+10;p++) { printf("%5d",*p); } printf("\n"); return 0; } void inv(int *x,int n) { int temp; int *p; int *i; int *j; int m = (n-1)/2; i = x; j = x+n-1; p = x+m; for(;i <= p;i++,j--) { temp = *i; *i = *j; *j = temp; } return; }