如果我有一个阵列,让我们说[1,2,3,4,5,6],我怎么能让它成为[2,3,4,5,6,1]?我应该使用哪个循环?我尝试使用for循环,但由于我对C编程很新,我无法生成输出。
答案 0 :(得分:1)
int array[6] = { 1, 2, 3, 4, 5, 6 };
int array_size = 6;
// array is now { 1, 2, 3, 4, 5, 6 }
int array = array[0]; // #1
for(int i = 1; i < array_size; i++) { // #2
array[i - 1] = array[i];
}
array[array_size - 1] = tmp; // #3
// array is now { 2, 3, 4, 5, 6, 1 }
它的工作原理如下:
tmp
。tmp
中存储的值并将其移动到数组的后面。答案 1 :(得分:0)
糟糕。我第一次误读了这个问题
int len = 5;
char *pOriginal = {0,1,2,3,4}
char ch0 = pOrigina[0];
memmove(pOriginal, &pOrigina[1], len-2) // Thanks guys!
pOriginal[len-1] = ch0;
答案 2 :(得分:-1)
如果您知道阵列的大小,那么您可以使用交换, 只需将第一个变量保存在临时变量中,然后用i + 1元素交换i元素,然后在最后一个位置进行最后一个元素和临时变量之间的交换。 谢谢......