Contrôle saisie C

Fermé
magalie - 15 déc. 2007 à 10:44
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 - 15 déc. 2007 à 13:51
Bonjour,
voila ma fonction qui demande à l'utilisateur de remplir un vecteur de maximum 4. comment faire pour contrôler si les chiffres entré sont dans l'intervalle 1-7 inclus?
voila ce que j'ai fait

void demande_nbr (int va[4 ])
{
int i;
int max =4;
do{
for ( i=0;i<limite;i++)
{
printf("le %d e nombre du vecteur : \n",i+1);
scanf("%d",&va[i]);
}

}while ((i <=0) || (i>7))

}
A voir également:

2 réponses

Qwerti Messages postés 166 Date d'inscription dimanche 2 septembre 2007 Statut Membre Dernière intervention 28 octobre 2008 85
15 déc. 2007 à 12:32
Salut Magalie,

C'est quoi la variable limite ??? :-/ A quoi sert la variable max ??? :-/ A mon avis il faudra remplacer limite par max (mais je ne suis pas encore bien reveille alors je peux me tromper, hein ?).

Tu peux faire une boucle dans le genre :

int i=0;
while ( (i <=0) || (i>7) ) {
printf("la %d eme composante du vecteur : \n",i+1);
scanf("%d",&va[i]);
if( (i <=0) || (i>7) ) { printf("Erreur : Merci de rentrer un chiffre entre 1 et 7.\n") ; }
}

Commentaires :

* commence la boucle qui teste si 0 <= i < 7 avant de demander la saisie ;
* Rajoute un petit message d'erreur si la saisie est mauvaise (c'est toujours plus agreable pour l'utilisateur et ca ne rajoute qu'une seule ligne...)
* Peut-etre la mot "composante" est plus approprié que "nombre" (on parle de composantes d'un vecteur... ou certains disent "coordonnées" d'un vecteur, mais c'est une erreur).

C'est tout ce que je peux faire pour le moment !

a+
-Qwerti.
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
15 déc. 2007 à 13:51
comme te l'a dit qwerty soit du declare limite a 4 ou alors tu le remplace par max
ensuite ta boucle do..while doit etre a l'interieur du for
et pour finir ds ton while c'est pas i qu'il faut comparer mais va[i]
voici ce que ça donne:
void demande_nbr (int va[4])
{
int i;
int max =4;
    for ( i=0;i<max;i++)
    {
        do
        {
            printf("le %d e nombre du vecteur : \n",i+1);
            scanf("%d",&va[i]);
        }
    while ((va[i]<=0) || (va[i]>7)) ;
    }
}
0