手动旋转矢量

时间:2018-02-09 19:12:55

标签: c++ vector rotation

我试图让这个函数读取十个整数值(由键盘上的用户输入)到一个向量中,然后询问用户应该以循环方式正确旋转向量元素的次数。然后,该函数应执行给定的旋转次数并输出得到的旋转矢量。这是我到目前为止所拥有的。我遇到的问题是,当程序运行时,输出不正确。它没有正确旋转矢量。我输入1 2 3 4 5 6 7 8 9 10作为输入,然后数字2作为转数和我得到的输出是2,2,3,4,5,6,7,8,9 ,10,

#define _USE_MATH_DEFINES
#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

void function2()
{

    int num;
    vector<int> rotate;

    int num_rotate = 0;
    cin >> num_rotate;
    for (int i = 0; i < 10; i++)
    {
        cin >> num;
        rotate.push_back(num);
    }

    for (int x = 0; x < num_rotate; ++x)
    {

        int n = rotate[9];

        for (int i = 8; i >= 0; --i)
        {
            rotate[i + 1] = rotate[i];

        }
        rotate[0] = n;

    }
    for (int i = 0; i < rotate.size(); i++)
    {
        cout << rotate[i] << ", ";
    }
}

int main()
{

    function2();
}

1 个答案:

答案 0 :(得分:1)

问题是函数首先要求输入旋转数,然后输入要旋转的数字。错误的输入订单。首先填充矢量,然后设置旋转次数:

int num;
vector<int> rotate;

for (int i = 0; i < 10; i++)
{
    cin >> num;
    rotate.push_back(num);
}

int num_rotate = 0;
cin >> num_rotate;