2017-03-04 1 views
0

Je travaillais sur l'utilisation de seulement 1 tableau et une boucle imbriquée pour vérifier les éléments répétés et les mettre à 0. J'ai un problème IndexBound et je ne peux pas dire ce qui ne va pas.Extrait de 1 tableau pour vérifier les éléments récurrents

Une aide?

int data[] = new int[20]; 
    for(int i = 0; i < data.length; i++) { 
     data[i] = in.nextInt(); 
    } 
    for (int i = 0; i < 18; i++) { 
     for (int x = i + 1; x < 20; i++) { 
      if (data[i] == data[x]) { 
       data[x] = 0; 
      } 
     } 
    } 


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 20 
at Arrays.Prog415h.main(Prog415h.java:47) 
if (data[i] == data[x]) { 
+0

est dans un scanner? – UnknowableIneffable

+0

@UnknowableIneffible Yeah – Asker123

Répondre

2

Ici, l'incrément de la imbriquée boucle est i au lieu de x. Cela signifie que i déborde les limites du tableau pour chaque itération à la fois par les boucles externes et internes. Pour résoudre le problème, remplacez-le par:

for (int x = i + 1; x < 20; x++) 
+0

Ok, donc c'était juste une faute de frappe en mon nom. – Asker123