2015-10-15 58 views
0

任務是基於某些用戶生成的輸入顯示沒有重複的數組。刪除數組中相同數字的重複

我試圖比較它之前的每個數字的數字,如果平等發生,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]); 
} 
+0

僅供參考,您使用的是'C'陣列,而不是向量。 'vector'通常用於描述自動擴展的可索引序列(也就是可以實時調整大小的類似數組的東西),特別是'C++'的'std :: vector'。 – ShadowRanger

+0

你正在尋找的詞是「數組」。有一種相關的東西叫做「矢量」,但是C沒有它們,至少沒有內置。編輯過的標籤。 –

回答

1

三個獨立的問題:

  1. a不通過你的循環初始化的第一次。在循環上面添加一行a = 0;

  2. 如果您的區塊顯示爲if(X[i]=X[j]);它應該是if(X[i] == X[j])(您缺少一個=

  3. 您的最終值k將比您擁有的元素總數少1。更改您的最終for循環爲i = 0; i <= k; i++