int moveToEnd(string a[], int n, int pos);
通过将所有元素复制到左侧一个位置后消除位置pos处的项目。将因此消除的项目放入数组的最后位置。返回移动到末尾的项目的原始位置。这是一个例子:
string actors[5] = { "peter", "lois", "meg", "chris", "stewie" };
int j = moveToEnd(actors, 5, 1); // returns 1
// actors now contains: "peter" "meg" "chris" "stewie" "lois"
这是我到目前为止所做的:
int moveToEnd(string a[], int n, int pos)
{int i = 0;
int initial;
int initial2;
int initial3;
for (i=0; i<n; i++)
{if (i<pos)
initial=i-1;
if (i>pos)
initial2=i-1;
else
pos + (n-pos);
}}
这是完全错误的,但我一直试图弄清楚如何将位置移动到最后,而不是将所有其他元素移到左边。
答案 0 :(得分:1)
string save = arr[pos];
for (int i = pos; i < n - 1; i++)
arr[i] = arr[i + 1];
arr[n - 1] = save;
答案 1 :(得分:1)
您不需要第二个参数,因为您可以使用a.length
基本逻辑是:
a[pos]
存储在临时String
变量中。a[pos]
迭代到a[a.length - 2]
,将a[pos + 1]
存储到a[pos]
String
存储到a[a.length - 1]