程序问题不大,只要稍做修改就可以了move(int array[5],int m) { int *p,array_end; array_end=*(array+4); //将数组最后一个元素的值赋给array;for(p=array+4;p>array;p--) { *p=*(p-1);} //将每个元素后一个位置*array=array_end; m--; if(m>0) move(array,n,m); //多了一个参数吧,应为(array,m)}稍微修改后如下(我加了一个主函数)你运行一下#includevoid move(int array[],int m) { int *p,array_end; array_end=*(array+4); for(p=array+4;p>array;p--) { *p=*(p-1);} *array=array_end;for(int i=0;i0) move(array,m); }void main(){ int array[5]={1,5,8,9,6}; move(array,2); //对开始两个元素后移} |