打卡7.28

题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。

程序:

#include<stdio.h>

int change(int a[100], int n, int m);

int main()

{

    int n, m, i, a[100];

    printf("请输入数组长度n");

    scanf("%d", &n);

    printf("请输入%d个数", n);

    for (i = 0; i<n; i++)

    {

        scanf("%d", &a[i]);

    }

    printf("需要移动的数的个数m:");

    scanf("%d", &m);

    change(a, n, m);

    printf("新数列为:");

    for (i = 0; i<n; i++)

        printf("%d ", a[i]);

    return 0;

}

int change(int a[100], int n, int m)

{

    int b[100], i;

    // 把最后m个存放在b

    for (i = 0; i < m; i++){

        b[i] = a[n - m + i];

    }

    // 把前面n-m个往后挪m个

    for (i = n-1; i >=m; i--) {

        a[i] = a[i-m];

    }

    // 把前m个从b放回a

    for (i = 0; i < m; i++){

        a[i] = b[i];

    }

    return 0;

}

输出样例:

图片发自简书App
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。