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 回答