需要注意的地方就是数组下标的位置,最好打个草稿。
参考代码如下:
#include <stdio.h> //n为数组元素个数,m为需要移动的位数 void func(int array[], int n, int m) { int tmp[m]; int i; int j = 0; //1 先把原数组后面m位成员保存起来,存放到一个临时数组中 for (i = n - m; i < n; i++) { tmp[j++] = array[i]; } //2 把原数组的前面的成员向后移动m位,注意,要从最后一个元素开始移动 for (i = n - m - 1; i >= 0; i--) { array[i + m] = array[i]; } //3 把临时数组中的m个成员放进原数组中前m位 j = 0; for(i = 0; i < m; i++) { array[i] = tmp[j++]; } } int main() { int n; scanf("%d", &n); int array[n]; int i; for (i = 0; i < n; i++) scanf("%d", &array[i]); int m; scanf("%d", &m); func(array, n, m); for (i = 0; i < n; i++) printf("%d ", array[i]); return 0; }
0.0分
4 人评分
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:749 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:703 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:587 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:533 |
Hello, world! (C语言代码)浏览:714 |
字符逆序 (C语言代码)浏览:504 |
printf基础练习 (C语言代码)浏览:1792 |
简单的a+b (C语言代码)浏览:434 |
小O的数字 (C++代码)浏览:757 |
三角形 (C语言代码)浏览:653 |