Problème tableau
ivesso
Messages postés
98
Date d'inscription
Statut
Membre
Dernière intervention
-
ivesso Messages postés 98 Date d'inscription Statut Membre Dernière intervention -
ivesso Messages postés 98 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
jai un souci avec un programme qui me demande ce qui suit:
-soit le tableau qui possede les valeurs:1,2,3,4,5,6 :decaler dune case adroite chaque element du tableau
(afficher sa :6,1,2,3,4,5)
-afiicher toutes les perutations circulaires du tableau.
MON CODE EST:
jai un souci avec un programme qui me demande ce qui suit:
-soit le tableau qui possede les valeurs:1,2,3,4,5,6 :decaler dune case adroite chaque element du tableau
(afficher sa :6,1,2,3,4,5)
-afiicher toutes les perutations circulaires du tableau.
MON CODE EST:
public class tab1 { public static void main(String[] args){ int [] tab = {1, 2, 3, 4, 5,6}; System.out.println("les valeurs du tableau initial sont :"); for(int i = 0; i < tab.length; i++) { System.out.print(tab[i] + " "); } // Maintenant, inversons l ordre des valeurs. La boucle suivant le permet for( int i = 0; i < 2; i++) { int tempo = tab[i]; tab[i] = tab[5 - i]; tab[5 - i] = tempo; } System.out.println(); System.out.println("les valeurs du tableau final sont :"); for(int i = 0; i < tab.length; i++) { System.out.print(tab[i] + " "); } } }
A voir également:
- Problème tableau
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
4 réponses
en effet l'algo n'est pas bon
essaye ça
essaye ça
int tempo = tab[tab.length]; for(i=(tab.length)-1; i>=0 ;i--) { tab[i+1]=tab[i]; } tab[0]=tempo;
Peux-tu préciser quel est le language utilisé?
On a l'impression que c'est du C, mais la fonction 'main' qui est un mot réservé, serait employé bizarrement.
On a l'impression que c'est du C++ mais il n'y a pas de classe 'String' mais une classe 'string'.
Je pose la question car je suis curieux et comme je ne connais pas tout, je préfère demander.
Merci pour la réponse.
On a l'impression que c'est du C, mais la fonction 'main' qui est un mot réservé, serait employé bizarrement.
On a l'impression que c'est du C++ mais il n'y a pas de classe 'String' mais une classe 'string'.
Je pose la question car je suis curieux et comme je ne connais pas tout, je préfère demander.
Merci pour la réponse.
Bon je ne connais pas la java, mais ça n'a pas d'importance puisque c'est un problème d'algorithme.
tab = { 1, 2, 3, 4, 5, 6 };
Je prends la 2ème boucle et je la fait tourner à la main:
Pour le 1er tour de boucle:
i = 0;
tempo = tab{i] = tab[0] = 1;
tab[i] = tab[0] = tab[5-i] = tab[5] = 6;
tab[5-i] = tab[5] = tempo = 1;
donc: tab = { 6, 2, 3, 4, 5, 1 };
Bilan: on a échangé les colonnes (i) et (5-i) c'est-à-dire 0 et 5.
Pour le 2ème tour de boucle:
i = 1;
donc on échangera les colonnes (i) et (5-i) c'est-à-dire 1 et 4, d'où le résultat:
tab = { 6, 5, 3, 4, 2, 1 };
Et il n'y a pas de 3ème tour car i=2 donc la condition i<2 n'est plus satisfaite.
Et ce n'est pas le résultat escompté... il faut donc revoir l'algorithme.
tab = { 1, 2, 3, 4, 5, 6 };
Je prends la 2ème boucle et je la fait tourner à la main:
Pour le 1er tour de boucle:
i = 0;
tempo = tab{i] = tab[0] = 1;
tab[i] = tab[0] = tab[5-i] = tab[5] = 6;
tab[5-i] = tab[5] = tempo = 1;
donc: tab = { 6, 2, 3, 4, 5, 1 };
Bilan: on a échangé les colonnes (i) et (5-i) c'est-à-dire 0 et 5.
Pour le 2ème tour de boucle:
i = 1;
donc on échangera les colonnes (i) et (5-i) c'est-à-dire 1 et 4, d'où le résultat:
tab = { 6, 5, 3, 4, 2, 1 };
Et il n'y a pas de 3ème tour car i=2 donc la condition i<2 n'est plus satisfaite.
Et ce n'est pas le résultat escompté... il faut donc revoir l'algorithme.
public static void main(String[] args) {
int mem;
int tab[]={1,2,3,4,5,6};
for(int d=0;d<=(tab.length-1);d++){
mem=tab[tab.length-1];
tab[tab.length-1]=tab[d];
tab[d]=mem;
}
for(int i=0;i<tab.length;i++){
System.out.print(tab[i]);
System.out.print(" ");
}
voila cet algo te permetra de decaler et daficher ala fin {6,1,2,3,4,5}
int mem;
int tab[]={1,2,3,4,5,6};
for(int d=0;d<=(tab.length-1);d++){
mem=tab[tab.length-1];
tab[tab.length-1]=tab[d];
tab[d]=mem;
}
for(int i=0;i<tab.length;i++){
System.out.print(tab[i]);
System.out.print(" ");
}
voila cet algo te permetra de decaler et daficher ala fin {6,1,2,3,4,5}