【发布时间】:2018-12-03 00:52:40
【问题描述】:
我有一个名为allnumbersarray 的数组,我需要删除该数组的重复项并将它们存储在另一个名为uniqueprimes 的数组中。 allnumbersarray 由质数组成。当我尝试使用 if - else if 语句时,输出变得混乱,许多元素变为 0 并且不再排序。这是我尝试过的,不知道要更改什么:
int temp[], temp2[];
int removeDuplicates()
{
int n, j =0;
temp[n];
temp2[n];
// Start traversing elements
for (int i=0; i<n-1; i++){
// If current element is not equal
// to next element then store that
// current element
if (allnumbersarray[i] != allnumbersarray[i+1]){
temp[j++] = allnumbersarray[i];
}
else if(allnumbersarray[i] == allnumbersarray[i+1])
temp2[j++] = allnumbersarray[i];
}
// Store the last element as whether
// it is unique or repeated, it hasn't
// stored previously
temp[j++] = allnumbersarray[n-1];
// Modify original array
for (int i=0; i<j; i++){
allnumbersarray[i] = temp[i];
}
printf("\n\nprimes array with duplicates removed:\n");
for (int i = 0; i < j; i++)
printf("%d\n", allnumbersarray[i]);
return j;
}
【问题讨论】: