我需要一些帮助,我知道以前有人问过这个问题,但我不明白,也无法解决,所以我需要帮助。我需要将数组的元素移动到左侧的位置。因此,如果输入为 1,2,3,4,5,则输出为 2,3,4,5,1。我对右边做了同样的事情,但左边我想不通,还请解释一下逻辑,谢谢。
#include <iostream>
using namespace std;
int a[100],n,i,tempr,templ;
int main()
{
cin>>n;
for(i=1;i<=n;i++) cin >> a[i];
for(i=1;i<=n;i++)
{
tempr = a[n];
a[n] = a[i];
a[i] = tempr;
cout<<"Right: "<<a[i]<<endl;
}
for(i=1;i<=n;i++)
{
templ = a[2];
a[2] = a[i];
a[i] = templ;
cout<<"Left: "<<a[i]<<endl;
}
return 0;
}
请帮忙!
原文由 Melin Ven 发布,翻译遵循 CC BY-SA 4.0 许可协议
第一个问题是索引错误:
正确做法:
第二个问题是移位元素的错误逻辑:更正的版本:
编辑:
如何显示两个班次:
请注意,您的代码看起来非常像 C 代码。在 C++ 中,您可以在任何代码段中声明变量,而不仅仅是在开头。在 C++ 中,您可以在
for
循环中声明变量,如下所示:for(int i=0; i<...)
- 不需要全局变量i
作为参考,这将是一个很好的 C++ 代码示例,可以满足您面临的问题:
这将是理想的 C++ 代码: