Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExcept
Résolu
domxaline
-
domxaline -
domxaline -
Bonjour,
en compilant mon prg j'ai un message d'erreur suivant
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
quelqu'un peut m'aider svp
je sais qu'il y a pb dans le dernier for, j'ai essayé changer length, ça changé rien,mais je ne sais pas comment le résoudre
quelqu'un peut m'aider svp?
en compilant mon prg j'ai un message d'erreur suivant
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
quelqu'un peut m'aider svp
import java.util.Scanner;
public class InserElement
{
public static void main(String[] args)
{
//int t[] =new int[100];
int n,x;
Scanner sc= new Scanner(System.in);
System.out.print("Entrez le nombre d'éléments du tableau :");
n=sc.nextInt();
int t[] =new int[n];
for(int i=0;i<n;i++)
{
System.out.print("Entrer l'élément n°"+(i+1)+" du tableau :");
t[i]=sc.nextInt();
}
System.out.print("Entrez la valeur de l'élément à ajouter");
x=sc.nextInt();
n=n+1; //n vaut 4
// t[n-1]=x;
t[n-1]=x;
for(int i=0;i<n;i++)
{
System.out.println("L'élément t["+(i+1)+"] est :"+t[i]);
}
}
}
je sais qu'il y a pb dans le dernier for, j'ai essayé changer length, ça changé rien,mais je ne sais pas comment le résoudre
quelqu'un peut m'aider svp?
A voir également:
- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExcept
- Deco in paris avis ✓ - Forum Consommation & Internet
- Navigation in private - Guide
- Aux in ✓ - Forum Enceintes / HiFi
- Peut-on brancher un casque sur une prise auxiliaire ? - Forum Casque et écouteurs
- Dc in - Forum Disque dur / SSD
5 réponses
Bonjour,
Le problème est ici :
Après ça tu ne peux plus te baser sur
Le problème est ici :
n=n+1; //n vaut 4
Après ça tu ne peux plus te baser sur
npour utiliser la boucle, parce que
naugmente, mais pas le tableau, il fait toujours la même taille qu'avant : 3
ok,
"il fait toujours la même taille qu'avant : 3"
mais mon tableau est nb de 4 maintenant, je n'arrive pas trouver la solution.
pouvez vous me dire la solution pour tourner mon boucle for svp
"il fait toujours la même taille qu'avant : 3"
mais mon tableau est nb de 4 maintenant, je n'arrive pas trouver la solution.
pouvez vous me dire la solution pour tourner mon boucle for svp
j'ai corrigé les lignes soulignés
mais il montre toujours erreur, surement que j'avais fait erreur,
mais il montre toujours erreur, surement que j'avais fait erreur,
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at InsertElement.main(InsertElement.java:20)
import java.util.Scanner; public class InserElement { public static void main(String[] args) { //int t[] =new int[100]; Scanner sc=new Scanner(System.in); System.out.println("Entrez le nombre d'éléments du tableau:"); int n=sc.nextInt(); int tab[]=new int[n]; int tab1[]=new int[n]; for(int i=0; i<n;i++) { System.out.println("Entrez la valeur de l élément n°:"+(i+1)+"du tableau:"); tab[i]sc.nextInt(); } System.out.println("Entrez la valeur de l'élement à ajouter:"); int x=sc.nextInt(); n=n+1; System.arraycopy(tab, 0, tab1, 0, n); for(int i=0; i<n; i++) { //tab1[i]=tab[i]; System.out.println("L'élément tab["+(i+1)+"] est :"+tab1[i]); } } }
Tu peux l'écrire de la manière que tu veux le problème sera toujours le même.
Augmenter n ne va pas augmenter la taille de tes tableaux.
Prends une feuille de papier, dessines 3 traits dessus, prends la feuille en photo, rajoutes 1 trait sur la feuille, il n'y a toujours que 3 traits sur la photo... Pour avoir 4 traits il te faut une nouvelle photo.
Dans ton cas, si tu veux un tableau de taille n+1 alors créé un tableau de taille n+1, mais n'utilises pas tes tableaux de taille n, ils sont trop petits.
Augmenter n ne va pas augmenter la taille de tes tableaux.
Prends une feuille de papier, dessines 3 traits dessus, prends la feuille en photo, rajoutes 1 trait sur la feuille, il n'y a toujours que 3 traits sur la photo... Pour avoir 4 traits il te faut une nouvelle photo.
Dans ton cas, si tu veux un tableau de taille n+1 alors créé un tableau de taille n+1, mais n'utilises pas tes tableaux de taille n, ils sont trop petits.
je crois que je n'ai pas bien compris arraycopy, il me donne erreur
quelqu'un qui me aidez svp
mon prg donne toujours la même erreur
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at InserElement.main(TriBulle.java:22)
quelqu'un qui me aidez svp
mon prg donne toujours la même erreur
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at InserElement.main(TriBulle.java:22)
import java.util.Scanner;
public class TriBulle
{
public static void main(String[] args)
{
//int tab[] =new int[100];
Scanner sc = new Scanner(System.in);
System.out.print("Entrez le nombre d'éléments du tableau :");
int n=sc.nextInt();
int tab[] =new int[n];
int tab1[]=new int[tab.length+1];
for(int i=0;i<n;i++)
{
System.out.print("Entrer l'élément n°"+(i+1)+" du tableau :");
tab[i]=sc.nextInt();
}
System.out.print("Entrez la valeur de l'élément à ajouter");
int x=sc.nextInt();
n=n+1; //n vaut 4
System.arraycopy(tab, 0, tab1, n, tab.length);
//tab[n-1]=x;
for(int i=0;i<n;i++)
{
System.out.println("L'élément tab["+(i+1)+"] est :"+tab[i]);
}
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
voilà le pb résolu:
import java.util.Scanner;
public class TriBulle
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.print("Entrez le nombre d'éléments du tableau :");
int n=sc.nextInt();
int tab[] =new int[n];
for(int i=0; i<tab.length;i++)
{
System.out.print("Entrer l'élément n°"+(i+1)+" du tableau :");
tab[i]=sc.nextInt();
}
System.out.print("Entrez la valeur de l'élément à ajouter");
int x=sc.nextInt();
int tab1[]=new int[n+1];
System.arraycopy(tab, 0, tab1, 0, tab.length);
tab1[n]=x;
for(int i=0;i<tab1.length;i++)
{
System.out.println("L'élément tab1["+(i+1)+"] est :"+tab1[i]);
}
}
}