gpt4 book ai didi

c - 从C中的数组中删除重复的整数

转载 作者:行者123 更新时间:2023-11-30 18:32:45 24 4
gpt4 key购买 nike

我正在开发一个程序,该程序通过对数组进行排序然后删除重复的连续值来从数组中删除重复的值。首先,我执行选择排序方法,然后调用函数 removedup() 来修改数组并返回大小。然后我基本上将数组中的值打印到该大小。但是,当我执行它时,它只打印原始数组,然后打印一堆空格。有谁知道为什么会发生这种情况?

我的代码:http://pastebin.com/uTTnnMHN

只是重复数据删除代码:

int removedup(int a[])
{
int i, count, j;
count = n;
for (i = 0; i < (n - 1); i++) {
if (a[i] == a[i + 1]) {
for (j = 0; j < (n - i); j++) {
a[j] = a[j + 1];
}
count--;
i--;
}
}
return count;
}

最佳答案

-1 for(j=0;j<(n-i);j++)

您的循环是否向左移动数组(从而删除重复值),j 不应该初始化为 j 而应该初始化为 i,并且条件似乎不正确

正确的可能是:

for(j=i;j<n-1;j++)
{
a[j]=a[j+1];
}
a[n-1] = 0; // Because you shift your table to the left, the last value should not be used

关于c - 从C中的数组中删除重复的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9881024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com