0
問題基本上是在外部陣列上打印兩個數組作爲右側部分和左側部分,但儘管我可以打印一個部分,但我無法打印其他部分。情景是,例如左邊的5個元素和右邊的7個元素。然後它反轉右側並將其粘貼到數組的開頭。在C中添加兩個數組
這是我輸入的一段代碼。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int mainarray[] = {} , n , i , rank;
printf("\nHow many element[10..2000]: ");
scanf("%d", &n);
printf("\nEnter the array elements : ");
for(i=0; i<n; ++i)
{
scanf("%d" , &mainarray[i]);
}
printf("\nThe array is : ");
for(i=0 ; i<n ; i++)
{
printf("%d ",mainarray[i]);
}
printf("\n\nEnter the rank of the element : ");
scanf("%d",&rank);
printf("\n\nElement on rank %d is: %d",rank, mainarray[rank-1]);
int leftarray[] = {} , rightarray[] = {};
for(i=0; i<=rank ; i++)
{
leftarray[i] = mainarray[i];
}
printf("\n\nThe left array is : ");
for(i=0 ; i<=rank ; i++)
{
printf("%d ", leftarray[i]);
}
for(i=0 ; i<n-rank-1 ;i++)
{
rightarray[i]=mainarray[i+rank+1];
}
printf("\n\nThe right array is : ");
for(i=0 ; i<n-rank-1 ;i++)
{
printf("%d ", rightarray[i]);
}
int j=n-rank-2,temp;
i=0;
while(i<j)
{
temp=rightarray[i];
rightarray[i]=rightarray[j];
rightarray[j]=temp;
i++;
j--;
}
printf("\n\nNew right array is : ");
for(i=0 ; i<n-rank-1 ; i++)
{
printf("%d ", rightarray[i]);
}
i=0;
while(i<n-rank-1)
{
mainarray[i]=rightarray[i];
i++;
}
j=0;
while(j<rank+1 && i<n-1)
{
mainarray[i]=leftarray[j];
j++;
i++;
}
printf("\n\nThe result is : ");
for(i=0 ; i<n ; i++)
{
printf("%d ",mainarray[i]);
}
printf("\n\n\n");
system("pause");
return 0;
}
'INT mainarray [] = {}' - 哎喲。如果您正在拍攝不含任何元素的陣列,則會找到它。 – WhozCraig
當你執行'int mainarray [] = {}''你定義'mainarray'是一個* empty *數組。所有索引都會超出範圍。 –
'scanf(「%d」,&n); int mainarray [n];' – BLUEPIXY