à partir de 7eme élément j'ai pb
Résolu
domxaline
-
domxaline -
domxaline -
Bonjour,
après avoir exécuté mon prg et quand l'utilisateur ajoute 7 éléments ou plus;
et quand il supprime un indice,
le 5eme et le 6eme indices ont la même valeurs, pourquoi ça et comment je peux le corriger svp
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
mon prg marche bien jusqu'au 6 éléments
mon output à partir de 7eme éléments
Entrez le nombre d'élément du tableau :7
Entrez l'élément n°:1 du tableau:5
Entrez l'élément n°:2 du tableau:3
Entrez l'élément n°:3 du tableau:7
Entrez l'élément n°:4 du tableau:9
Entrez l'élément n°:5 du tableau:8
Entrez l'élément n°:6 du tableau:2
Entrez l'élément n°:7 du tableau:6
Entrez la position de l'élément à supprimer:3
L'élément à supprimer est 7
l'élément tab[1]est:5
l'élément tab[2]est:3
l'élément tab[3]est:9
l'élément tab[4]est:8
l'élément tab[5]est:2
l'élément tab[6]est:2
après avoir exécuté mon prg et quand l'utilisateur ajoute 7 éléments ou plus;
et quand il supprime un indice,
le 5eme et le 6eme indices ont la même valeurs, pourquoi ça et comment je peux le corriger svp
import java.util.Scanner; public class Divers4 { public static void main(String[] args) { int p; System.out.print("Entrez le nombre d'élément du tableau :"); Scanner sc=new Scanner(System.in); int n = sc.nextInt(); int[]tab = new int[n]; //cette boucle sert saisi des éléments du tableau for( int i=0; i<n; i++ ) { System.out.print("Entrez l'élément n°:"+(i+1)+" du tableau:"); tab[i] = sc.nextInt(); } System.out.print("Entrez la position de l'élément à supprimer:"); p = sc.nextInt(); if ( p<1 || p>n ) // vérifier si la position est dans la limites du tableau { System.out.print("Position hors limites du tableau: "); } else { System.out.println("L'élément à supprimer est "+tab[p-1]); for ( int i = p-1; i<n; i++ ) { tab[i] = tab[i+1]; n = n-1; // il y aura un élément en moins } //afficher les éléments for( int i = 0; i<tab.length-1; i++ ) { System.out.println("l'élément tab["+(i+1)+"]est:"+tab[i]); } } } }EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
mon prg marche bien jusqu'au 6 éléments
mon output à partir de 7eme éléments
Entrez le nombre d'élément du tableau :7
Entrez l'élément n°:1 du tableau:5
Entrez l'élément n°:2 du tableau:3
Entrez l'élément n°:3 du tableau:7
Entrez l'élément n°:4 du tableau:9
Entrez l'élément n°:5 du tableau:8
Entrez l'élément n°:6 du tableau:2
Entrez l'élément n°:7 du tableau:6
Entrez la position de l'élément à supprimer:3
L'élément à supprimer est 7
l'élément tab[1]est:5
l'élément tab[2]est:3
l'élément tab[3]est:9
l'élément tab[4]est:8
l'élément tab[5]est:2
l'élément tab[6]est:2
A voir également:
- à partir de 7eme élément j'ai pb
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Fitness park a partir de quel age - Forum Loisirs / Divertissements
- Identifier un tableau à partir d'une photo - Forum Loisirs / Divertissements
- Créer une vidéo à partir de photos - Guide
2 réponses
Bonjour
Ton n=n-1 (qui d'ailleurs peut s'écrire simplement --n) devrait être à l'extérieur de la boucle et pas à l'intérieur.
Et ton test devrait être i<n-1 car ta dernière recopie devrait être tab[n-2]=tab[n-1] sinon tu débordes du tableau.(si tu mets le n=n-1 après la boucle)
for ( int i = p-1; i<n; i++ ) { tab[i] = tab[i+1]; n = n-1; // il y aura un élément en moins }
Ton n=n-1 (qui d'ailleurs peut s'écrire simplement --n) devrait être à l'extérieur de la boucle et pas à l'intérieur.
Et ton test devrait être i<n-1 car ta dernière recopie devrait être tab[n-2]=tab[n-1] sinon tu débordes du tableau.(si tu mets le n=n-1 après la boucle)