我刚刚构建了一个将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;
}
试试这个
for (i=0; i<a; ++i)
{
for (j=n-1; j>=0; --j)
{
number[j+1] = number[j];
}
number[0] = number[n];
}
在这里,您将每个字符向数组的右边移动了1个元素,然后将最后一个元素赋给第一个重复的a
时间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句