Langage c

Fermé
stark173 Messages postés 105 Date d'inscription vendredi 26 juillet 2013 Statut Membre Dernière intervention 6 février 2015 - 1 nov. 2013 à 16:20
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 1 nov. 2013 à 23:16
bonjour je dois réaliser un programme :
- Je demande une chaine au clavier.
- Tant que cette chaine n'est pas « stop », j'augmente de 1 ma variable compteur, et je continue à demander une chaîne au clavier.
- A la fin, j'affiche le nombre de fois que j'ai demandé une chaine au clavier.


voici ce que j'ai fais:

int main()
{ int compteur = 0;
char mot[4];
char stop [4];

printf("Entrez un mot de quatre lettres\n");

scanf("%s", mot);

if (strcmp(mot,"stop") ==0)
{

printf("%d", compteur);

}
else
{
printf("%d", compteur++);
}
return 0;
}

qu'est ce qu'il ne va pas ? help please !

2 réponses

Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
1 nov. 2013 à 19:05
Comme tu vois dans la consigne l'expression "Tant que", il faut que tu utilises une boucle de type While.

En pseudo-code, il faudrait que tu fasses quelque chose comme:

Lire une chaîne de caractères
While (chaîne de caractères lue est différente de "STOP")
{
Incrémenter le compteur
Lire de nouveau une chaîne de caractère
}
Afficher le compteur


Bonne chance!
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
1 nov. 2013 à 23:16
En plus de ce que dit DoctorC, il y a un autre problème avec tes variables.
Il faut minimum 5 caractères. Il ne faut pas oublier qu'en C, une chaîne se termine par un caractère nulle '\0'.
Et puis, tu peux rentrer n'importe quelle chaîne, donc autant mettre : char mot[32];
De plus, ton char stop[4]; ne sert strictement à rien. Enlève-le.

Cdlt,
0