哐哐蜜柑614 2021-12-12 14:19 采纳率: 100%
浏览 147
已结题

循环移动 怎么用指针实现

问题描述
给定一组整数,要求利用数组把这组数保存起来,再利用指针实现对数组中的数循环移动。假定共有n个整数,则要使前面各数顺序向后移m个位置,并使最后m各数变为最前面的m各数。

输入
输入有两行:第一行包含一个正整数n和一个正整数m,第二行包含n个正整数。每两个正整数中间用一个空格分开。

输出
输出有一行:经过循环移动后数组中整数的顺序依次输出,每两个整数之间用空格分隔。

输入样列
11 4
15 3 76 67 84 87 13 67 45 34 45

输出样例
67 45 34 45 15 3 76 67 84 87 13


#include<stdio.h>
int main()
{
    int i;
    int n,m;
    scanf("%d %d",&n,&m);
    int a[n];
    int *pa;
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    for(i=0;i<m;i++){
        *pa=a[i+n-m];
    }
    for(i=m;i<=n;i++){
        *pa=a[i-m];
    }
    for(i=0;i<n;i++){
        printf("%d ",pa[i]);
    }
    printf("\n");
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 五一编程 2021-12-12 14:26
    关注
    
    #include <iostream>
    using namespace std;
    
    void Move(int *pa,int n,int m)
    {
        for(int i=0; i<m; i++){
            int temp = pa[n-1];
            for(int i=n-1; i>=0; i--)
                pa[i] = pa[i-1];
            pa[0] = temp;
        }
    }
    
    int main()
    {
        int n;
        int m;
        int a[100];
        int *pa; 
        cin >> n >> m;
        for(int i=0; i<n; i++)
            cin >> a[i];
        pa = a;
        Move(pa,n,m);
        for(int i=0; i<n; i++)
            cout << pa[i] << ' ';
        return 0;
    } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月20日
  • 已采纳回答 12月12日
  • 创建了问题 12月12日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。