梯形图如何实现数组中的数据移动
要求满足错误:
要求只用一个数组的方式实现,一定要保证在输出结果时,输出的顺序和数组中数的顺序是一致的。
123456789101112131415161718192021222324252627 #include<stdio.h>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(" "); return 0;}
下一篇:拜托c语言大佬们看看
上一篇:这个符号怎么打