12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
编程知识 时间:2024-12-04 12:57:29
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
要实现循环右移,可以利用位运算和取余来完成。下面是一个示例代码:#include <stdio.h>void rightRotate(int *arr, int n, int k) {k = k % n;for(int i = 0; i < k; i++) {in
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
要实现循环右移,可以利用位运算和取余来完成。下面是一个示例代码:
#include <stdio.h>void rightRotate(int *arr, int n, int k) {k = k % n;for(int i = 0; i < k; i++) {int temp = arr[n-1];for(int j = n-1; j > 0; j--) {arr[j] = arr[j-1];}arr[0] = temp;}}int main() {int arr[] = {1, 2, 3, 4, 5};int n = sizeof(arr) / sizeof(arr[0]);int k = 2;rightRotate(arr, n, k);for(int i = 0; i < n; i++) {printf("%d ", arr[i]);}return 0;}
在这个示例中,我们定义了一个rightRotate
函数,它接受一个整型数组arr
、数组长度n
和右移位数k
作为参数。首先对k
取余确保k
在n
的范围内,然后循环执行右移操作。在右移过程中,我们先保存最后一个元素的值,然后依次将前面的元素向后移动一位,最后将保存的值放到第一个位置。最后在main
函数中调用rightRotate
函数并打印结果。
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19