debugging - 程序行为不端 - 重复删除
问题描述
以下程序应该从数字序列中删除重复项。例如,通过程序运行 7, 7, 7, 2, 1 应该返回 7, 2, 1(实际上是 7, 2, 1, 0, 0)。
但是,任何时候我注释掉“int unique_list = 0;” 总的来说,程序行为不端,打印出随机数。
有人可以建议吗?
非常感谢,
#include <stdio.h>
#define MAXNUMS 5
void RemoveDuplicates(int list[]);
int main()
{
int idx, numbers[MAXNUMS - 1];
int unique_list = 0;
printf("Enter %d numbers.\n", MAXNUMS);
for(idx = 0; idx < MAXNUMS; idx++) {
printf("input number %d: ", idx + 1);
scanf("%d", &numbers[idx]);
}
printf("pass");
RemoveDuplicates(&numbers);
printf("\npass 1");
printf("\nThe new list is:\n");
for (idx = 0; idx < MAXNUMS; idx++)
printf("%d\n", numbers[idx]);
}
/* The list contains MAXNUMS integers */
/* Also, all duplicate elements are converted to 0 */
void RemoveDuplicates(int list[])
{
int i;
int j;
int found;
int unique_list = 0;
for (i = 0; i < MAXNUMS; i++) {
found = 0;
for (j = 0; j < unique_list; j++) {
if (list[j] == list[i])
found = 1;
break;
}
if (!found) {
list[unique_list] = list[i];
unique_list++;
}
}
/* clean up the remainder of the list */
for (j = unique_list; j < MAXNUMS; j++)
list[j] = 0;
return;
}
解决方案
推荐阅读
- selenium-webdriver - 当我将 WebdriverManager 与 selenium 并行使用时,我在测试用例的中间收到此错误。'断开连接:未连接到 DevTools'
- javascript - 在另一个节点 js 服务器之前添加登录节点服务器
- python - 如何使用 Python 创建屏幕截图 Motion JPEG 流媒体服务器?
- c++ - C++ - 以特定方式对向量中的字符串进行排序
- reactjs - React tiliio 可编程视频切换摄像头不工作
- c# - OpenIdConnectProtocolInvalidNonceException。用户仍然可以在 AuthenticationFailed 通知上进行身份验证吗?
- java - 以随机顺序访问数组中的每个值
- java - 如何使用“@”(注释)在变量名称中签名创建变量?
- php - 我的变量有问题吗?
- python - 如何从“cats_vs_dogs”张量流数据集中查看图像