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