Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 阵列修改[左旋转]_C++_Arrays - Fatal编程技术网

C++ 阵列修改[左旋转]

C++ 阵列修改[左旋转],c++,arrays,C++,Arrays,所以,我刚刚解决了这个问题: 在我解决了这个问题后,我检查了其他人的密码 我很好奇他的代码是怎么工作的,你们能帮我找出他的代码是怎么工作的吗。 我的代码: #包括 使用名称空间std; int main() { int n; int d; cin>>n>>d; int-arr[n]; int-lrotate[n]; 对于(int i=0;i>arr[i]; } 如果(n-d>0) { 对于(inti=d;i,他使用了简单的算法来解决这个问题 如果N==d,则数组中没有变化 如果第一个for循环中

所以,我刚刚解决了这个问题: 在我解决了这个问题后,我检查了其他人的密码 我很好奇他的代码是怎么工作的,你们能帮我找出他的代码是怎么工作的吗。 我的代码:

#包括
使用名称空间std;
int main()
{
int n;
int d;
cin>>n>>d;
int-arr[n];
int-lrotate[n];
对于(int i=0;i>arr[i];
}
如果(n-d>0)
{

对于(inti=d;i,他使用了简单的算法来解决这个问题

  • 如果N==d,则数组中没有变化
  • 如果第一个for循环中的“start”不等于0(例如:start=3表示数组必须旋转3次),则从索引3到数组末尾填充数组
  • 所以start是逐渐递增的,若start==N,那个么start变为0,数组再次填充在索引0到索引3中

  • 第二个代码不旋转,而是按照所需的顺序将数字读入数组。我很好奇他的代码是如何工作的,尤其是第7行和第12行。这是学习如何使用调试器的最佳时机。因此,当有人发布一个没有代码的问题时,我们通常会问“到目前为止你都尝试了什么?”.另一方面,到目前为止,你理解了什么?
    #include <iostream>
    using namespace std;
    int main()
    {
    int n;
    int d;
    cin >> n >> d;
    int arr[n];
    int lrotate[n];
    for (int i=0; i<n; i++)
    {
        cin >> arr[i];
    }
    if (n-d>0)
    {
        for (int i=d; i<n;i++)
        {
            lrotate[i-(d)]=arr[i];
        }
        for (int i=0; i<n; i++)
        {
            lrotate[i+(n-d)]=arr[i];
        }
        for (int i=0; i<n; i++)
        {
            cout << lrotate[i] << " ";
        }
    }
    }
    
    #include <iostream>
    using namespace std;
    int main() {
    int N, d, i;
    cin >> N >> d;
    int start = N - d;
    int *arr = new int[N];
    for (i=0; i<N; ++i)
    {
        if (start == N)
            start = 0;
        cin >> arr[start++];
    }
    for (i=0; i<N; ++i)
        cout << arr[i] << " ";
    return 0;
    }