比较数组元素并尝试将不同的元素添加到其他数组不工作?

时间:2013-03-06 04:18:08

标签: c

我正在尝试比较数组元素,并且想法是将所有不同的元素收集到其他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;
} 

1 个答案:

答案 0 :(得分:1)

下面:

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

temp_arr[j]未初始化,您将其分配给my_arr[i]。你的描述听起来像你想要的:

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

但是,您最终会在holes中获得temp_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);
     }
 }