c加加代码实现,有n (n<=10) 个整数,使前面各数顺序向后移m (m<=n) 个位置,最后m个数变成最前面的m个数,如图所示。编写函数shift(a,n,m)实现上述功能在主函数中输入n个整数并输出调整后的n个数。
时间: 2023-12-20 16:58:36 浏览: 75
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数.
以下是使用C++实现的shift函数:
```c++
void shift(int a[], int n, int m) {
int temp[m];
for (int i = n - m, j = 0; i < n; i++, j++) { // 将后面m个数存入临时数组
temp[j] = a[i];
}
for (int i = n - m - 1; i >= 0; i--) { // 将前面n-m个数向后移m个位置
a[i + m] = a[i];
}
for (int i = 0; i < m; i++) { // 将临时数组中的m个数放到数组最前面
a[i] = temp[i];
}
}
```
在主函数中可以这样使用:
```c++
int main() {
int n, m;
cin >> n >> m;
int a[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
shift(a, n, m);
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
return 0;
}
```
其中,输入的n和m表示整数个数和向后移动的个数,a数组存储这n个整数,最后输出调整后的n个数。
阅读全文