zoukankan      html  css  js  c++  java
  • C语言程序设计教程(第三版)课后习题10.4

    1353: C语言程序设计教程(第三版)课后习题10.4

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 296  Solved: 219
    [Submit][Status][BBS]

    Description

    有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。

    Input

    输入数据的个数n n个整数移动的位置m

    Output

    移动后的n个数

    Sample Input

    10
    1 2 3 4 5 6 7 8 9 10
    2

    Sample Output

    9 10 1 2 3 4 5 6 7 8 

    #include <stdio.h>
    const  int N=100000;
    int n,a[N],b[N],m;
    void Move()
    {
        for(int i=0; i<m; i++)
        {
            b[m-1-i]=a[n-1-i];//另开一个数组,从后往前存,a数组的最后几个数先腾到一边
    
        }
        for(int i=n-1; i>=0; i--)
        {
            if(i>=m)
                a[i]=a[i-m];
            if(i<m)
                a[i]=b[i];//直接赋值到a数组的前面
        }
    }
    int main()
    {
        while(scanf("%d",&n)!=EOF)
        {
            for(int i=0; i<n; i++)
            {
                scanf("%d",&a[i]);
            }
            scanf("%d",&m);
            Move();
            for(int i=0; i<n; i++)
            {
                printf("%d ",a[i]);
            }
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    excel
    POJ 1149--PIGS
    A
    强大的sscanf
    hdu 5754 Life Winner Bo(威佐夫博弈)
    hdu 5723 Abandoned country(最小生成树,dfs)
    hdu 5734 Acperience
    The Monocycle,UVa 10047(状态记录广搜)
    Fire!(两次bfs)
    NP-Hard Problemd(二分图判定着色)
  • 原文地址:https://www.cnblogs.com/tianmin123/p/5018332.html
Copyright © 2011-2022 走看看