c语言中如何做到把数组中某一元素之后的所有项向后移一位

2025-02-26 18:05:47
推荐回答(3个)
回答1:

数组长度加1,把数组的最后一位向后移以为,倒数第二位移到原先数组的最后一位,以此方法移动,知道移动到你查找到数组的那个元素。

回答2:

#include 
#include 

int main()
{
int i,n=0;
char a[10] = "1234567";
printf("Move第几个之后的?");
scanf("%d",&n);
for(i=strlen(a)+1;i>n-1;i--)
{
a[i+1] =a[i];
}
a[n]=' ';
printf("a[%s]\n",a);
return 0;
}
Move第几个之后的?3
a[123 4567]
Press any key to continue

回答3:

我构想了一种正序遍历数组一次即可后移各位的方法:
#include #include int main(){ int i,n=0;
int a[] = {12, 21, 31, 43};
printf("Move第几个之后的?");
scanf("%d",&n);
int temp[2] = {a[n]};

int magic = 1;
for(i = n + 1; i < sizeof(a) / sizeof(int); ++i) {
temp[magic] = a[i];
magic = !magic;

a[i] = temp[magic];
} a[n] = ' '; printf("a = \"%s\"\n",a); return 0;}