所以我想将 32 个整数的数组元素切换“n”次。
所有元素都应位于下一个位置,最后一个元素应位于第一个位置。
我尝试过这样的事情:
while(scanf("%d", &n) != EOF)
{
for(int j=0; j<n; j++)
for(int i=1; i<31; i++)
{
t[0]=t[31];
tmp=t[i];
t[i]=t[i+1];
}
}
我不确定如何使用 tmp 变量来解决这个问题。
这是数组的元素:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
如果 n=1,它应该看起来像这样:
32 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
最佳答案
以下不是对代码的编辑,而是运行时间为 O(n) 的更有效的解决方案:
void rightshift(char array[LENGTH])
{
int i, next = array[0];
for (i = 1; i < LENGTH; i++)
{
char temp = array[i];
array[i] = next;
next = temp;
}
array[0] = next;
}
关于c - 在 C 中交换数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55300301/