有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
程序运行示例1如下: the total numbers is:5 back m:2 1 2 3 4 5 4,5,1,2,3 程序运行示例2如下: the total numbers is:6 back m:3 1 2 3 4 5 6 4,5,6,1,2,3
#include <stdio.h>
int main()
{
int n, m;
printf("the total numbers is:");
scanf("%d", &n);
int nums[n];
printf("back m:");
scanf("%d", &m);
// 输入n个整数
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
// 向后移动m个位置
for (int i = 0; i < m; i++) {
int temp = nums[n - 1];
for (int j = n - 1; j > 0; j--) {
nums[j] = nums[j - 1];
}
nums[0] = temp;
}
// 输出结果
for (int i = 0; i < n - 1; i++) {
printf("%d,", nums[i]);
}
printf("%d", nums[n - 1]);
return 0;
}
使用了一个简单函数就完成了此操作,有什么能优化的地方请大家指正。