C 使用hashmap从数组中删除重复项
仍然在新阵列a中,我正在获取旧数据…不确定此处缺少哪些数据 任何帮助都将不胜感激 提前感谢。逻辑错误 最终的数组要到大小时才会出现 a的索引错误 只需使用一个循环即可实现此目的,请分析以下内容:C 使用hashmap从数组中删除重复项,c,c++-cli,C,C++ Cli,仍然在新阵列a中,我正在获取旧数据…不确定此处缺少哪些数据 任何帮助都将不胜感激 提前感谢。逻辑错误 最终的数组要到大小时才会出现 a的索引错误 只需使用一个循环即可实现此目的,请分析以下内容: int main(array<System::String ^> ^args) { int arr[]={1,2,3,2,9,8,1,2,3,9}; int a[9]; int size = sizeof(arr)/sizeof(arr[0]); int
int main(array<System::String ^> ^args)
{
int arr[]={1,2,3,2,9,8,1,2,3,9};
int a[9];
int size = sizeof(arr)/sizeof(arr[0]);
int str[256]= {'\0'};
int i = 0;
for(i ; i < size ; i++)
{
if(str[arr[i]] == 0 )
str[arr[i]]= 1;
}
for( i = 0 ; i < size ; i++)
{
if( str[arr[i]] == 1)
{
a[i] = arr[i];
}
}
for(i=0 ; i < size ; i++)
{
printf("%d->",a[i]);
}
return 0;
}
现在在最后一个数组a上迭代到j我已经看到了这个问题的可能副本,但不确定我的代码是否有问题……您没有初始化a。而且,这不是C。看起来像C++-CLI。如果你想用C语言编程,请确保使用C编译器。我在visual studio中运行…即使在初始化之后,我也会得到相同的结果。谢谢…我确实可以在单个for循环中执行相同的操作。谢谢
int i = 0,j=0;
for( ; i < size ; i++)
{
if(str[arr[i]] == 0 )
{
str[arr[i]]= 1;
a[j++] = arr[i];
}
}