J'essaie d'attribuer une variable à un tableau, mais je continue à obtenir une erreur arrayindexoutofbounds et je suis excitée sur la raison pour laquelle cela ne fonctionne pas.
La question:
Écrivez un programme qui lit un nombre arbitraire d'entiers compris entre 0 et 50 inclusivement et compte combien d'occurrences de chacune d'elles sont entrées. Indiquez la fin de l'entrée par une valeur en dehors de la plage. Une fois que toute entrée a été traitée., Imprimez toutes les valeurs (avec le nombre d'occurrences) entrées une ou plusieurs fois. p> }} p>
3 Réponses :
int i = 0; int userInput[]=new int[i]; // here you are creating an array of length 0. so you can not assign any value in it. int userInput[]=new int[MaxValue];// I think you mean this while creating array.
int userInput[]=new int[MaxValue];
Vous avez déclaré que vous avez déclaré la taille de la taille I comme suit quelle valeur est 0 0
Par conséquent, il crée une matrice de taille 0, ce qui provoque une erreur ArrayindexOUFBoundSException. p> p>
Le nombre d'intrants arbitray n'a rien à voir avec le tableau dans ce cas avec la façon dont il l'a configuré (il n'a pas besoin de arraylist code>). Tout ce qu'il a besoin de le faire ajouter 1 code> chaque fois que ce numéro se présente dans le tableau. Par exemple, s'ils tapent 34 code>, la position 34 de la matrice est maintenant 1 code>. Tapez à nouveau, il est maintenant 2 code>. Ensuite, après la boucle, vous pouvez imprimer toutes les positions 1 ou plus. Ceci est toujours une longueur arbitraire de l'entrée tout en utilisant un tableau.
La longueur de la matrice est immuable après l'initialisation. Vous initialisez votre matrice avec i qui a une valeur 0, votre tableau a donc la longueur = 0. Initialisez-le avec INT UserInput [] = neuf int [maxvalue]
La réponse à la question Comme vous l'avez posée, c'est que vous créez un tableau de taille 0, puis essayant de mettre des objets dedans (INT userinput [] = neuf int [i], où "i" est 0). Évidemment, vous ne pouvez pas faire cela, d'où l'erreur. Cela dit, vous semblez avoir un malentendu sur ce que l'objectif de cette question est. Je suppose que cela est un problème de devoirs, alors je ne vais pas vous donner la réponse directement. Je peux dire avec certitude que vous n'avez pas besoin de stocker chaque integer Entrée. Pensez à la façon dont vous pourriez résoudre ce problème sans cela.