从C中的数组中排除唯一值
此代码旨在排除数字列表中的非重复值,但不返回原始序列中的重复值。如何保持所有重复的优先级 我的代码:从C中的数组中排除唯一值,c,C,此代码旨在排除数字列表中的非重复值,但不返回原始序列中的重复值。如何保持所有重复的优先级 我的代码: #include <stdio.h> #include <stdlib.h> int count=0; int main () { int i,j,k,x, altarray[1000],array[1000]; printf("Please enter the number of integers in your list:\n"); scanf("%d",&x
#include <stdio.h>
#include <stdlib.h>
int count=0;
int main ()
{
int i,j,k,x, altarray[1000],array[1000];
printf("Please enter the number of integers in your list:\n");
scanf("%d",&x);
printf ("Please enter the list of numbers\n");
for (i=0; i<x; i++)
scanf("%d",&array[i]);
printf("\nThe corrected array is...\n");
for (i=0; i<x; i++)
{
for (j=i+1; j<x; j++)
{
if(array[i]==array[j])
{
altarray[count]=array[i];
count++;
}
}
}
for (i=0; i<count; i++)
printf("%d",altarray[i]);
}
#包括
#包括
整数计数=0;
int main()
{
int i,j,k,x,altarray[1000],数组[1000];
printf(“请在列表中输入整数的数量:\n”);
scanf(“%d”和&x);
printf(“请输入数字列表\n”);
对于(i=0;i要搜索重复的数字,您必须覆盖j
for
循环中数组的所有元素,索引为i
的元素除外。因此循环应如下所示:
for (j = 0; j < x; j++)
{
if ((array[i] == array[j]) && (i != j))
{
altarray[count] = array[i];
count++;
break;
}
}
(j=0;j
{
if((数组[i]==数组[j])&&(i!=j))
{
altarray[计数]=数组[i];
计数++;
打破
}
}
我添加了一个
break
,以避免在检测到重复的数字存在后浪费周期。如果我们要保存周期,I!=j&&array[I]==array[j]
会更好。少比较一次。@DeiDei是的,那会更好:)。您是否尝试过调试并缩小错误范围?这将帮助您提出一个特定的问题(),而不仅仅是“为什么我的代码不工作?”。欢迎使用Stack Overflow!请将您的代码简化为问题的一部分。您当前的代码包含许多与您的问题无关的内容-最小的样本通常看起来类似于良好的单元测试:仅执行一项任务,并为可再现性指定输入值。