-1
votes

Comment puis-je ajouter correctement une variable à un tableau?

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. xxx

}} xxx


2 commentaires

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.


3 Réponses :


1
votes
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.

0 commentaires

1
votes
int userInput[]=new int[MaxValue];

0 commentaires

1
votes

Vous avez déclaré que vous avez déclaré la taille de la taille I comme suit xxx

quelle valeur est 0 0 Par conséquent, il crée une matrice de taille 0, ce qui provoque une erreur ArrayindexOUFBoundSException.


1 commentaires

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 ). Tout ce qu'il a besoin de le faire ajouter 1 chaque fois que ce numéro se présente dans le tableau. Par exemple, s'ils tapent 34 , la position 34 de la matrice est maintenant 1 . Tapez à nouveau, il est maintenant 2 . 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.