我只是构建了一个代码,它将5个数字分开并放在另一边的末尾。
ex. (left side)
1 2 3 4 5
n=2
3 4 5 1 2
这很有效,但是我试图做反向,让数字从右侧拍摄并推到左侧。这是我的完整代码。 (我知道,左和右完全相同。)我需要一些帮助
#include <stdio.h>
#include <conio.h>
int main ()
{
int number[100]={1,2,3,4,5};
int i,n=5,a,j;
int num;
printf("Enter 1(Left) or 2(Right)\n");
scanf("%d", &num);
if(num==1)
{
printf ("Enter the position of the element to split the array from left.\n");
scanf ("%d",&a);
for (i=0; i<a; ++i)
{
number[n] = number[0];
for (j=0; j<n; ++j)
{
number[j] = number[j+1];
}
}
printf("The resultant array is\n");
for (i=0; i<n; ++i)
{
printf ("%d ",number[i]);
}
}
else
{
printf ("Enter the position of the element to split the array from right.\n");
scanf ("%d",&a);
for (i=0; i<a; ++i)
{
number[n] = number[0];
for (j=0; j<n; ++j)
{
number[j] = number[j+1];
}
}
printf("The resultant array is\n");
for (i=0; i<n; ++i)
{
printf ("%d ",number[i]);
}
}
getch();
return 0;
}
答案 0 :(得分:2)
试试这个
for (i=0; i<a; ++i)
{
for (j=n-1; j>=0; --j)
{
number[j+1] = number[j];
}
number[0] = number[n];
}
在这里,您将每个字符移动到数组右侧1个元素,然后将最后一个元素分配到第一个元素,重复a
次。