Probleme programme decompte de mots.
Fermé
Netrip
Messages postés
2
Date d'inscription
jeudi 6 février 2014
Statut
Membre
Dernière intervention
6 février 2014
-
6 févr. 2014 à 23:26
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 7 févr. 2014 à 00:06
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 7 févr. 2014 à 00:06
A voir également:
- Probleme programme decompte de mots.
- Programme demarrage windows 10 - Guide
- Identifiants et mots de passe - Guide
- Voir mot de passe wifi android - Guide
- Trousseau mot de passe iphone - Guide
- Mot de passe administrateur - Guide
2 réponses
Utilisateur anonyme
6 févr. 2014 à 23:31
6 févr. 2014 à 23:31
Bonjour
L'erreur est là :
Réfléchis un peu à la condition d'arrêt du for, je suis sûr que tu vas trouver.
L'erreur est là :
for (i=0;i<'\0';i++)
Réfléchis un peu à la condition d'arrêt du for, je suis sûr que tu vas trouver.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
7 févr. 2014 à 00:06
7 févr. 2014 à 00:06
Bonjour,
Déjà, il y a une erreur.
for (i=0;i<'\0';i++)
Ce n'est pas i qu'il faut comparer à '\0', mais la case du tableau... Réfléchis bien là-dessus pour trouver la bonne condition.
Une fois que ça sera corrigé, ça ne fonctionnera toujours pas.
scanf("%s", &phrase), récupère le premier mot et non une phrase. De plus, ce n'est pas &phrase qu'il faut mettre mais phrase : scanf("%s", phrase);
Il faut donc utiliser : fgets(phrase, sizeof phrase, stdin);
En plus, cela rendra ton programme plus robuste car scanf("%s", ...) est très dangereux... Et là ça devrait fonctionner.
Autres remarques d'amélioration de ton code :
printf("Il y a %d mot dans votre phrase",res);
N'oublie pas de mettre "...dans votre phrase\n" pour forcer l'affichage de la phrase.
Tu as oublié le return 0; à la fin de ton main().
char nombremot(char tab[]) int nombre mot(const char tab[]) plutôt. Tu affiches via %d, il faut donc que nombre retourne un int.
if (tab[i]==space)
Je te conseille de mettre : if(tab[i]==' '). C'est plus lisible et moins gourmand en mémoire.
Et enfin une petite réflexion pour la forme : si l'utilisateur termine sa phrase par une espace, ton programme retournera la mauvaise valeur. Si l'utilisateur rentre deux espaces conscutives, cela ne fonctionnera pas bien non plus.
PS : merci d'utiliser la balise "code c" pour poster un code pour plus de lisibilité. Il faut utiliser l'ascenseur situé à droite du bouton "souligné" et sélectionner "C".
Cdlt,
Déjà, il y a une erreur.
for (i=0;i<'\0';i++)
Ce n'est pas i qu'il faut comparer à '\0', mais la case du tableau... Réfléchis bien là-dessus pour trouver la bonne condition.
Une fois que ça sera corrigé, ça ne fonctionnera toujours pas.
scanf("%s", &phrase), récupère le premier mot et non une phrase. De plus, ce n'est pas &phrase qu'il faut mettre mais phrase : scanf("%s", phrase);
Il faut donc utiliser : fgets(phrase, sizeof phrase, stdin);
En plus, cela rendra ton programme plus robuste car scanf("%s", ...) est très dangereux... Et là ça devrait fonctionner.
Autres remarques d'amélioration de ton code :
printf("Il y a %d mot dans votre phrase",res);
N'oublie pas de mettre "...dans votre phrase\n" pour forcer l'affichage de la phrase.
Tu as oublié le return 0; à la fin de ton main().
char nombremot(char tab[]) int nombre mot(const char tab[]) plutôt. Tu affiches via %d, il faut donc que nombre retourne un int.
if (tab[i]==space)
Je te conseille de mettre : if(tab[i]==' '). C'est plus lisible et moins gourmand en mémoire.
Et enfin une petite réflexion pour la forme : si l'utilisateur termine sa phrase par une espace, ton programme retournera la mauvaise valeur. Si l'utilisateur rentre deux espaces conscutives, cela ne fonctionnera pas bien non plus.
PS : merci d'utiliser la balise "code c" pour poster un code pour plus de lisibilité. Il faut utiliser l'ascenseur situé à droite du bouton "souligné" et sélectionner "C".
Cdlt,
6 févr. 2014 à 23:43
mais cela ne marche pas non plus ^^.