Problème tableau

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:
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] + " ");                
              }
         }    }
Configuration: Windows Vista
Internet Explorer 7.0

4 réponses

  1. en effet l'algo n'est pas bon
    essaye ça
    int tempo = tab[tab.length];
    for(i=(tab.length)-1; i>=0 ;i--)
    {
       tab[i+1]=tab[i];
    }
    tab[0]=tempo;
    1
    1. 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}
      0
      1. 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.
        0
        1. merci pour le code sa ma bcp aider
          0
      2. 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.
        0
        1. c'est en JAVA
          0