试设计一个算法,将数组Array中的元素Array[0]至Array[n-1]循环右移k位.选定n=10,

求解C语言编程内容
试设计一个算法,将数组Array中的元素Array[0]至Array[n-1]循环右移k位。选定n=10,k=3,数组Array[10]={0,1,2,3,4,5,6,7,8,9},循环右移3位应变成Array[10]={3,4,5,6,7,8,9,0,1,2}。

//测试通过,如果有疑问,欢迎交流
//先输入m,k的值:10 3
//然后输入m个数:1 2 3 4  5 6 7 8 9 10
#include<stdio.h>
#include<stdlib.h>
int main(){
    int *tar, *tar_tmp;
    int n,i,k;
    scanf("%d%d", &n,&k);
    tar = (int*)malloc(sizeof(int) * n);
    tar_tmp = (int*)malloc(sizeof(int)*n);
    for(i = 0; i<n; i++)
        scanf("%d",&tar[i]);
    for(i = 0;i<n; i++){
        tar_tmp[(i+k)%n] = tar[i];//移动的操作
    }
    for(i = 0; i<n; i++){
        printf("%d ", tar_tmp[i]);
    }
    printf("\n");
    free(tar);
    free(tar_tmp);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网