Langage C

Résolu
queenfina Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -  
queenfina Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je débute en programmation et j'ai quelques problemes pour traduire cet algo en C

algo 1-3

debut
Variable i : Entier
Debut
i = 0
Ecrire "Entrez un nombre entre 1 et 3"
TantQue i < 1 ou i > 3
Lire i
Si i < 1 ou i > 3 Alors
Ecrire "Saisie erronée. Recommencez"
FinSi
FinTantQue
Fin


je l'ai fais comme ca

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

int main()
{
int i = 0;

while ( i < 1 || i > 3 )
{
printf("mauvaise saisie ! saisissez un nombre entre 1 & 3 !\n");
scanf ("%d\n",&i);
}

return 0;
}


ca marche pas et j'ai besoin d'un coup de pouce .merci
A voir également:

3 réponses

Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
 
Bonjour,
Vous avez oublié le (Si i < 1 ou i > 3 Alors) dans le while, ne mettez pas "\n" dans le scanf
#include <stdio.h>
#include <stdlib.h>

int main()
{
int i = 0;
printf("Entrez un nombre entre 1 et 3\n");
while ( i < 1 || i > 3 )
{
scanf ("%d",&i); //lire i
  if(i<1 || i>3) // Si
  {// Alors
      printf("mauvaise saisie ! saisissez un nombre entre 1 & 3 !\n");
  }// FinSi
}

return 0;
} 
0
malaik5 Messages postés 258 Date d'inscription   Statut Membre Dernière intervention   33
 
Salut,
cote algorithme ton si ne sert vraiment pas a grand chose (je dirai meme que ton si ne sert à rien du tous) parce que les condition du si sont les meme que le while alors tant que t'es dans la boucle while la condition du si est toujours satisfaite donc je te conseille vivement de l'enlever
0
chico200987 Messages postés 791 Date d'inscription   Statut Membre Dernière intervention   143
 
Salut,

Je confirme que le if ne sert strictement a rien, en fait pour faire plus propre ce qu'il faudrait c'est plutôt quelque chose comme ceci :

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

int main() 
{ 
int i; 
printf("Entrez un nombre entre 1 et 3 : \n"); 
scanf ("%d",&i); 
while ( i < 1 || i > 3 ) 
{ 
printf("Mauvaise saisie ! Saisissez un nombre entre 1 & 3 !\n"); 
scanf ("%d",&i); 
} 

return 0; 
}  


Edit : Le code de Hxyp fonctionne, mais while + if dedans ayant la meme condition c'est pas tres joli joli, ca ne devrait pas se faire.. meme s'il correspond le mieux a ta traduction d'algo qui elle aussi, fonctionne mais n'est pas "propre" :/
0
queenfina Messages postés 45 Date d'inscription   Statut Membre Dernière intervention  
 
merci
0