内存:128  时间:1

题目描述

注:本题只需要提交标记为修改部分之间的代码,请按照C++方式提交。

YT附小1年纪2班每周一换座位,采用循环移动,每个人换到自己右边的邻座,最右边的一个人换到最左边的位置。
假设一共m列座位,从第1列到第m列,列头学生的编号依次是K1,K2,K3,。。。,Km,求第n周后第1列到第m列列头学生的编号?

#include<iostream>
using namespace std;
void changenext(int *cols,int n)
{
    int save,i;
    save = *(cols+n-1);
    for(i=n-1; i>0; i–)
        *(cols+i)=*(cols+i-1);
    /*
        请填写该部分代码
    */

}
int main()
{
    int cols[80];
    int m,i,n;
    cin>>m>>n;
    for(i=0; i<m; i++)
        cin>>cols[i];
    for(i=0; i<n; i++)
        changenext(cols,m);  //换一次座位
    for(i=0; i<m; i++)
        cout<<cols[i]<<" ";
    return 0;
}

输入

m和n
第1列到第m列每个学生的编号

输出

第n周后第1列到第m列每个学生的编号

样例输入

7 3
2 3 1 7 5 4 6

样例输出

5 4 6 2 3 1 7

提示

代码如下


#include<iostream>
using namespace std;
void changenext(int *cols,int n)
{
    int save,i;
    save = *(cols+n-1);
    for(i=n-1; i>0; i--)
        *(cols+i)=*(cols+i-1);
    *cols=save;
}
int main()
{
    int cols[80];
    int m,i,n;
    cin>>m>>n;
    for(i=0; i<m; i++)
        cin>>cols[i];
    for(i=0; i<n; i++)
        changenext(cols,m);
    for(i=0; i<m; i++)
        cout<<cols[i]<<" ";
    return 0;
}

代码来源于互联网,仅供参考!