打卡7.28

作者: 今生何求惟你 | 来源:发表于2018-07-28 22:56 被阅读0次

    题目:有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;

    }

    输出样例:

    打卡7.28

    相关文章

      网友评论

        本文标题:打卡7.28

        本文链接:https://www.haomeiwen.com/subject/wovamftx.html