在主函数中有一个数组int a[10]= {1,2,3,4,5,6,7,8,9,10};若调用函数时传给m和n的值分别是4和7,则函数调用后在主函数中数组输出为:1,2,3,4,8,7,6,5,9,10。
#include <stdio.h>
void rearrange(int *p, int m, int n){
int i,j,temp;
// 从m开始 到n 结束
for(i = m ; i <= n ;i++){
for(j = i+1 ; j<= n ; j++){
temp = *(p+i);
*(p+i) = *(p+j);
*(p+j) = temp;
}
}
}
int main(){
int a[10]= {1,2,3,4,5,6,7,8,9,10},i;
rearrange(a,4,7);
for(i = 0 ; i < 10 ; i ++){
printf("%d ",a[i]);
}
return 0;
}
运行结果: