CSDATE 2022-01-31 13:22 采纳率: 50%
浏览 81
已结题

C语言编程:一个有n个数的数组,将前n-m个数依次向后移m位,使最后m个数变成前m个数.

一个有n个数的数组,将前n-m个数依次向后移m位,使最后m个数变成前m个数.
采用指针定义,定义函数的方法实现

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2022-01-31 14:26
    关注
    #include <stdio.h>
    #define N 101
    void move(int *a,int n,int m);
    int main()
    {
        int a[N];
        int i,n,m;
    
        printf("输入数组长度:");
        scanf("%d",&n);
        printf("输入数组元素:");
        for(i=0;i<n;i++){
            scanf("%d",&a[i]);
        }
        printf("输入m:");
        scanf("%d",&m);
    
        move(a,n,m);
    
        for(i=0;i<n;i++){
            printf("%d\t",a[i]);
        }
        puts("");   /* 换行 */
    
        return 0;
    }
    void move(int *a,int n,int m)
    {
        int *p=a;
        int *q=a;
        int i=0;
        int temp1,temp2,j;
        /* 确定最后一个数的地址 */
        while(i<n){
            q++;
            i++;
        }
        q--;
    
        for(i=0;i<m;i++){
            temp1 = *p;
            *p = *q;
            for(j=1;j<n;j++){
                temp2 = *(p+j);
                *(p+j) = temp1;
                temp1 = temp2;
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月31日
  • 已采纳回答 1月31日
  • 创建了问题 1月31日

悬赏问题

  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀