将数组元素从指定索引后移一个位置
1 /* 2 ******************************************************************************* 3 时间 :2014年9月20日 21:55:25 4 程序名:MoveArr.c 5 By :xxNote 6 作用 :把一个整数数组从指定的索引k开始向后移动1个单位,最后一个元素扔掉,索引为k的元素改成m 7 ******************************************************************************* 8 */ 9 #include <stdio.h> 10 #define N 10 11 12 int iArr[N] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 13 void Move(int *iArr, int k, int m);//向后移动一个位置 14 void Show(void);//显示数组 15 int main(void) 16 { 17 printf("移动前数组是:\n"); 18 Show(); 19 Move(iArr, 5, -1); 20 printf("移动后数组是:\n"); 21 Show(); 22 23 return 0; 24 } 25 26 void Move(int *iArr, int k, int m) 27 { 28 int Current, tmp, i; 29 30 tmp = iArr[k]; 31 for (i=k; i<N-1; i++) 32 { 33 Current = tmp; 34 tmp = iArr[i+1]; 35 iArr[i+1] = Current; 36 } 37 iArr[k] = m; 38 39 return; 40 } 41 42 void Show(void) 43 { 44 int i; 45 46 for (i=0; i<N; i++) 47 { 48 printf("%3d", iArr[i]); 49 } 50 printf("\n"); 51 return; 52 }
运行效果: