JAVA - Tableau
JavaNoob
-
Sims' -
Sims' -
Bonjour, j'ai un tableau avec plusieur chiffres, et je doit mettre les négatifs dans un tableau(tabNeg) et les positifs dans un autre(TabPos)
Quand jexecute, tout les chiffres des 2 tableaux sont 0, apart le dernier. j'aimerai savoir pourquoi jobtient des 0 et pas les vrai valeures. voici le code
static void traiterTableau(int tab[])
{
int[] tabNeg = null;
int[] tabPos = null;
int nbNeg=0;
int nbPos=0;
for(int i=0; i<tab.length; i++)
{
if (tab[i]<0)
{
nbNeg++;
tabNeg= new int[nbNeg];
tabNeg[nbNeg-1]=tab[i];
}
else if (tab[i]>0)
{
nbPos++;
tabPos= new int[nbPos];
tabPos[nbPos-1]=tab[i];
}
}
Merci.
Quand jexecute, tout les chiffres des 2 tableaux sont 0, apart le dernier. j'aimerai savoir pourquoi jobtient des 0 et pas les vrai valeures. voici le code
static void traiterTableau(int tab[])
{
int[] tabNeg = null;
int[] tabPos = null;
int nbNeg=0;
int nbPos=0;
for(int i=0; i<tab.length; i++)
{
if (tab[i]<0)
{
nbNeg++;
tabNeg= new int[nbNeg];
tabNeg[nbNeg-1]=tab[i];
}
else if (tab[i]>0)
{
nbPos++;
tabPos= new int[nbPos];
tabPos[nbPos-1]=tab[i];
}
}
Merci.
A voir également:
- JAVA - Tableau
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
1 réponse
Hello,
J'ai regardé ton code, et il faut que je t'avoue que je comprend pas pkoi l'initialisation de tes tabNeg et tabPos se fait dans ta boucle for? La conséquence de cela, c que tu auras un tableau vide et dans laquelle tu affecte une valeur dans la dernière cellule.
Voici une correction qui devrait t'aider :
J'ai regardé ton code, et il faut que je t'avoue que je comprend pas pkoi l'initialisation de tes tabNeg et tabPos se fait dans ta boucle for? La conséquence de cela, c que tu auras un tableau vide et dans laquelle tu affecte une valeur dans la dernière cellule.
Voici une correction qui devrait t'aider :
static void traiterTableau(int tab[]) { int[] tabNeg = new int[tab.length]; int[] tabPos = new int[tab.length]; int nbNeg=0; int nbPos=0; for(int i=0; i<tab.length; i++) { if (tab[i]<0) { tabNeg[nbNeg]=tab[i]; nbNeg++; } else if (tab[i]>0) { tabPos[nbPos-1]=tab[i]; nbPos++; } }
Malheureusement, je ne vois pas comment tu pourrais faire en faisant qu'une boucle, à moins de connaître le nombre d'élément au paravant...
A la limite, dans la boucle général tu compte les éléments afin de déterminer un stop. Tu peux utiliser tes variables positionNeg et positionPos comme arret au moment de l'affichage des tableaux...
genre :
sinon tu stock tout dans une arraylist au lieu d'un tableau et tu fait simplement des add, mais tu auras des object Integer au lieu de int.