晚安,人们!
我正在尝试解决一个相当简单的问题,但是.. 好吧,似乎我做不到。:)
这个想法是我有一个包含 n 个元素的 FIFO 列表(FIFO 队列),并且它被赋予了一个值 k (k < n)。我的小程序必须用 k 个元素将元素向左移动。(例如对于 n=4, k=3, a[]=(1, 2, 3, 4),结果是 4 1 2 3)。
但好吧,我离那还很远。
这是我到目前为止所写的:
#include <iostream>
using namespace std;
void move (int a[100], unsigned n, unsigned k) {
int t[100];
unsigned i;
for (i=0; i<=n-1; i++) t[i]=a[i];
for (i=0; i<=k-1; i++) a[i]=a[i+k-1];
for (i=k; i<=n-1; i++) a[i]=t[i+1];
}
int main () {
int a[100];
unsigned k, n, i;
cout<<"n; k= "; cin>>n>>k;
for (i=0; i<=n-1; i++) cin>>a[i];
move (a, n, k);
for (i=0; i<=n-1; i++) cout<<a[i]<<" ";
}
任何帮助将不胜感激。先感谢您。