在上面的基础上,改写程序,实现数列右移n位。数列输入、数列输出、数列右移分别用三个子函数实现。(数列的个数、右移的位数由用户从键盘输入) 例如: 输入数列的长度:6 输入原始数列:1 2 3 4 5 6 输入右移的位数:3 循环右移3位后变为:4 5 6 1 2 3 c++
时间: 2023-12-28 18:04:05 浏览: 34
以下是实现题目要求的C++代码:
```cpp
#include <iostream>
using namespace std;
void inputArray(int arr[], int length) {
cout << "请输入" << length << "个整数作为数列:" << endl;
for (int i = 0; i < length; i++) {
cin >> arr[i];
}
}
void outputArray(int arr[], int length) {
cout << "数列为:";
for (int i = 0; i < length; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
void rightShiftArray(int arr[], int length, int shift) {
int temp[shift];
for (int i = length - shift; i < length; i++) {
temp[i - length + shift] = arr[i];
}
for (int i = length - shift - 1; i >= 0; i--) {
arr[i + shift] = arr[i];
}
for (int i = 0; i < shift; i++) {
arr[i] = temp[i];
}
}
int main() {
int length, shift;
cout << "请输入数列的长度:";
cin >> length;
int arr[length];
inputArray(arr, length);
cout << "请输入右移的位数:";
cin >> shift;
rightShiftArray(arr, length, shift);
outputArray(arr, length);
return 0;
}
```
代码中,`inputArray`函数用于输入数列,`outputArray`函数用于输出数列,`rightShiftArray`函数用于将数列进行右移操作。在`main`函数中,先输入数列的长度,然后调用`inputArray`函数输入数列,再输入右移的位数,最后调用`rightShiftArray`函数进行右移操作,最终调用`outputArray`函数输出结果。