国外的外贸网站,自己可以做电子商务网站,推荐大良营销网站建设,wordpress阅读数修改方法一 将原数组拆成两部分#xff0c;前面n-m个数和后面m个数。首先将前面n-m个数逆序#xff0c;然后将后面的m个数逆序。最后将整个数组逆序即可。
#include stdio.hvoid reverse(int arr[], int start, int end)
{for (int i start, j end; i (start en…方法一 将原数组拆成两部分前面n-m个数和后面m个数。首先将前面n-m个数逆序然后将后面的m个数逆序。最后将整个数组逆序即可。
#include stdio.hvoid reverse(int arr[], int start, int end)
{for (int i start, j end; i (start end) / 2; i, j--){int temp arr[i];arr[i] arr[j];arr[j] temp;}
}void rotate(int arr[], int n, int m)
{reverse(arr, 0, n - m - 1); // reverse first n-m elementsreverse(arr, n - m, n - 1); // reverse last m elementsreverse(arr, 0, n - 1); // reverse the whole array
}int main()
{int n, m;printf(请输入整数的个数n和向后移动的位置m\n);scanf_s(%d %d, n, m);int arr[] { 0 };printf(请输入%d个整数\n, n);for (int i 0; i n; i) {scanf_s(%d, arr[i]);}rotate(arr, n, m);printf(反转后的数组为: \n);for (int i 0; i n; i)printf(%d , arr[i]);return 0;
}首先定义了一个 reverse 函数用来逆序数组的一部分它的参数为数组起始下标和结束下标。 然后定义了一个 rotate 函数用来旋转数组。它的参数为数组、数组的长度和旋转的数量。该函数先将前面的 n-m 个元素逆序然后将后面的 m 个元素逆序。最后将整个数组逆序。 在 main 函数中定义了一个整数数组 arr并将其长度和旋转数量分别设置为 7 和 2。然后调用 rotate 函数对数组进行旋转。最后打印出旋转后的数组。 方法二 函数shift接受一个整型数组arr、数组长度n和向后移动的位置m先将后面的m个数保存到临时数组temp中然后将前面n-m个数向后移动m个位置最后将临时数组temp中的m个数放到数组arr的前面。main函数中读入整数个数和数组元素并调用shift函数移动数组。
#include stdio.hvoid shift(int arr[], int n, int m) {int temp[m];for (int i n - m; i n; i) {temp[i - n m] arr[i];}for (int i n - m - 1; i 0; i--) {arr[i m] arr[i];}for (int i 0; i m; i) {arr[i] temp[i];}
}int main() {int n, m;printf(请输入整数个数n和向后移动的位置m);scanf(%d%d, n, m);int arr[n];printf(请输入%d个整数, n);for (int i 0; i n; i) {scanf(%d, arr[i]);}shift(arr, n, m);printf(移动后的数组为);for (int i 0; i n; i) {printf(%d , arr[i]);}printf(\n);return 0;
}