Programme compilable mais le résultat est faut

Fermé
siwar - Modifié par crapoulou le 8/10/2016 à 16:34
 siwar - 8 oct. 2016 à 19:57
Bonjour,

j'ai pas su ma faute , pouvez vous m'aider s'il vous plait

#include <stdio.h>
#include <stdlib.h>

int main()
{
   char tab[50],temp;
   int i,n;
   printf("donner le nombre de cases ");
   scanf("%d",&n);
   for (i=0;i<n;i++)
   {   fflush(stdin);
       printf("remplissez la case numero %d :",i+1);
       scanf("%c",&tab[i]);

   }
   temp=tab[0];

   for(i=1;i<n;i++)
   {
       tab[i]=tab[i+1] ;
       tab[n-1]=temp;

   }
   for(i=0;i<n;i++)
{
    printf("la case %d est %c \n",i+1,tab[i]);
   fflush(stdin);}
    return 0;
}


1 réponse

le contenu de tab[i+1] ; ligne 20 n'est pas initialisé

si on souhaite remplir une seule case le programme ne passera pas dans la deuxieme boucle à cause de la condition du for()

edit: c'est quoi le but de l'exercice ? à quoi sert la deuxieme boucle ?

edit2: tu sauvegardes aussi tab[0] dans temp, mais tu ne modifies jamais tab[0], cette "sauvegarde" n'a donc pas d'utilité
0
bonsoir voici le contenu de l'exercice
il me demande de permuter la première et la dernière case puis de faire un décalage à gauche pour les autres cases
0