任务是根据某些用户生成的输入显示没有重复的数组。
我试图将这个数字与它之前的每个数字进行比较,如果相等,a=1,它应该跳过它。代码不返回任何内容。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int X[30],Y[30],i,j,k=0,a,N;
printf("Length of the vector: ");
scanf("%d",&N);
printf("Input the numbers: ");
for(i=0;i<N;i++)
scanf("%d",X+i);
Y[0]=X[0];
for(i=1;i<N;i++){
for(j=i-1;j>=0;j--)
if(X[i]=X[j])
a=1;
if(a==0){
k++;
Y[k]=X[i];
}
a=0;
}
for(i=0;i<k;i++)
printf("%d",Y[i]);
}
最佳答案
代码块中存在三个独立的问题:
a
第一次通过循环时未初始化。添加一行a = 0;
在你的循环之上。您的 if block 读取
if(X[i]=X[j])
;应该是if(X[i] == X[j])
(您缺少一个=
)您的最终值
k
将比您拥有的元素总数少一。更改您的最终for
循环至i = 0; i <= k; i++
关于c - 删除数组中相同数字的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33155897/