Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExcept
Résolu/Fermé
A voir également:
- Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExcept
- Bagage à main - Guide
- Navigation in private - Guide
- Scan ligne de la main gratuit - Télécharger - Photo & Graphisme
- Aux in ✓ - Forum Enceintes / HiFi
- Deco in paris avis - Forum Consommation & Internet
5 réponses
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
2 déc. 2015 à 21:49
2 déc. 2015 à 21:49
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
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
3 déc. 2015 à 07:43
3 déc. 2015 à 07:43
"mon tableau est nb de 4 maintenant"
Non, justement, comme je l'ai dit : "il fait toujours la même taille qu'avant : 3"
Ce que tu as augmenté c'est n, pas la taille du tableau. De toute façon un tableau ne peut pas être agrandi, si tu veux un tableau plus grand il faut en créer un nouveau.
Non, justement, comme je l'ai dit : "il fait toujours la même taille qu'avant : 3"
Ce que tu as augmenté c'est n, pas la taille du tableau. De toute façon un tableau ne peut pas être agrandi, si tu veux un tableau plus grand il faut en créer un nouveau.
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]); } } }
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
3 déc. 2015 à 20:43
3 déc. 2015 à 20:43
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]);
}
}
}