-1

こんにちは、サイズが定義されていない新しい配列の int の配列に結合しようとしています (最初の 2 つの配列によって異なります。しかし、コードを実行すると、無限ループにとどまるようです。何が間違っているのでしょうか? Ps. 配列-1 Ds に遭遇すると終了するはずです。

int
main (void) {
   void join(int arr1[], int arr2[]);
   int vectorA[11] = {8, 17, 29, 32, 33, 33, 77, 81, 90, 94, -1};
   int vectorB[11] = {8, 17, 29, 44, 33, 33, 77, 81, 90, 94, -1};

   join(vectorA, vectorB);
return 0;
}

void join(int arr1[], int arr2[])
{
   int count=0, counter=0;
   int i=0, j=0;
   while(arr1[i]>-1)
      count++;
   while(arr2[j]>-1)
      count++;
   int tot[count];
   for(i=0, j=0; ((arr1[i]>-1) || (arr2[j]>-1)); )
   {
       if(arr2[j]<0) {
       tot[counter++]=arr1[i++];
   }
   else if(arr1[i]<0) {
       tot[counter++]=arr2[j++];
   }
   else {
       tot[counter++]=arr2[j++];
       tot[counter++]=arr1[i++];
   }
}

printf("the doubled array is : \n");
for(int i=0; i<count; i++)
{
   printf("%d, ", tot[i]);
}

}
4

1 に答える 1

3
while(arr1[i]>-1)
      count++;

i変わらないから、これは終わらない。多分あなたは意味しましたarr[i++]か?

于 2012-10-01T04:51:58.017 に答える