Scanf ... cas ou j'ai pas trouvé de reponse ...

Résolu
kwil Messages postés 4 Statut Membre -  
kwil Messages postés 4 Statut Membre -
Bonjour .

pour remplir un tableau (int tableau[4] ;)

... for (i=0 ; i<4 . i++)
scanf ("%d" , &tableau[i]) ;

la question est : le tableau doit contenir un seul chiffre par case
donc je cherche comment interdire ou eviter à un joueur de taper plus d'un chiffre par saisie ... pour mieux expliquer voilà des cas :

////////////////////////////
"entrez vos 4 chiffres"

3
9
4
2
........ Bonne saisie
////////////////////////////
"entrez vos 4 chiffres"

6
7
315 ............ NON ! // trois chiffres
5

////////////////////////////
"entrez vos 4 chiffres"

689 ............ NON! // trois ...
4
8
11 .............. Non ! // deux ...

Merci d'avance ...

3 réponses

  1. Utilisateur anonyme
     
    oyoy !

    tu n'as qu'à vérifier si le chiffre saisie est bien compris entre 0 et 9 :

    int temp; 
    int compteur = 0;
    int tableau[4] ;
    
    while(compteur < 4)
    {
      scanf ("%d" , &temp) ; 
      if(itemp<10 && itemp>=0)
      {
          tableau[compteur] = temp;
          compteur ++;
      }
      else{printf("erreur %d est supérieur à 9",itemp);}
    }
    
    1
  2. Nowever Messages postés 88 Statut Membre 4
     
    ajoute ce code après ton scanf :

    t1[i]=t1[i]%10;

    comme ça tu n'auras que les unités.
    0
  3. kwil Messages postés 4 Statut Membre
     
    Bonjour .

    Merci à vous Nowever . le modulo à 10 t1[i]=t1[i]%10; prend en consideration un seul chiffre , mais celui le plus à droite et pas le premier tapé ... et ça n'empeche pas l'utilisateur de taper deux chiffres ou plus ...

    par contre nagashima , merci l'ami(e) , c'est justement ce qui me fallait ... merci , merci et mille merci ...
    0