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

Résolu/Fermé
kwil Messages postés 4 Date d'inscription dimanche 19 mai 2013 Statut Membre Dernière intervention 12 juin 2013 - Modifié par kwil le 27/05/2013 à 05:06
kwil Messages postés 4 Date d'inscription dimanche 19 mai 2013 Statut Membre Dernière intervention 12 juin 2013 - 29 mai 2013 à 15:34
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 ...
A voir également:

3 réponses

Utilisateur anonyme
27 mai 2013 à 13:09
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
Nowever Messages postés 84 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 1 avril 2016 4
27 mai 2013 à 12:33
ajoute ce code après ton scanf :

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

comme ça tu n'auras que les unités.
0
kwil Messages postés 4 Date d'inscription dimanche 19 mai 2013 Statut Membre Dernière intervention 12 juin 2013
29 mai 2013 à 15:34
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