0

私は配列要素を比較しようとしていますが、アイデアは、すべての異なる要素を他の temp[] 配列に収集することです。どこか間違っていると思います...理解できません...助けてください

#include <stdio.h>
#include <stdlib.h>

#define SIZE 30

int my_arr[SIZE] = {10,20,45,63,89,20,15,12,89,24,12,10,89,25,64,39,37,64,95,
                  27,23,58,97,23,18,56,94,76,32,11                                                      
                   };


int main()
{

   int i,j,temp_arr[100];



  for(i=0;i<SIZE;i++)
  {
     for(j=0+i; j<SIZE; j++)
     {
        if(*(my_arr+i)!=*(my_arr+j))

              *(my_arr+i) = temp_arr[i];

     }

      }
      return 0;
} 
4

1 に答える 1

1

ここ:

*(my_arr+i) = temp_arr[i];

temp_arr[j]は初期化されておらず、 に割り当てていmy_arr[i]ます。あなたの説明はあなたが望むように聞こえます:

temp_arr[i] = *(my_arr+i);

しかし、その後holestemp_arr. そのため、おそらく、temp_arr.

何かのようなもの:

int tmp_cnt = 0;
for(i=0;i<SIZE;i++) {
     for(j=0+i; j<SIZE; j++) {
        if(*(my_arr+i)!=*(my_arr+j))
              temp_arr[tmp_cnt++] = *(my_arr+i);
     }
 }
于 2013-03-06T04:25:44.693 に答える