要求满足错误:
要求只用一个数组的方式实现,一定要保证在输出结果时,输出的顺序和数组中数的顺序是一致的。
#include
int main(){
int array[100];
int m, n, i,j, tmp, distance;
scanf("%d%d", &n, &m);
for (i = 0; i < n; ++i) //输入
scanf("%d", &array[i]);
distance = n - m; //尾部要替换过去的值之间地址相距n-m个元素.
for (i = distance; i < n; ++i){ //循环移动,每次移动一个。
tmp = array[i - distance];
array[i - distance] = array[i];
for (j = i; j > i - distance; --j){
array[j] = array[j - 1];
}
array[i - distance + 1] = tmp;
}
for (i = 0; i < n; ++i){ //输出
printf("%d", array[i]);
if (i != n - 1)
printf(" ");
}
printf("\n");
return 0;
}