数组长度加1,把数组的最后一位向后移以为,倒数第二位移到原先数组的最后一位,以此方法移动,知道移动到你查找到数组的那个元素。
#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
我构想了一种正序遍历数组一次即可后移各位的方法:
#include
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;}