Besoin d'aide à toute la communauté
Fermé
bienfaitmurhula
Messages postés
13
Date d'inscription
lundi 8 mai 2017
Statut
Membre
Dernière intervention
13 septembre 2020
-
Modifié le 15 avril 2019 à 16:42
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 16 avril 2019 à 18:30
[Dal] Messages postés 6198 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 13 décembre 2024 - 16 avril 2019 à 18:30
A voir également:
- Besoin d'aide à toute la communauté
- Communauté whatsapp - Accueil - WhatsApp
- Instagram votre compte ne respecte pas les règles de la communauté - Guide
- Ce message a été supprimé car il ne respecte pas nos standards de la communauté - Guide
- Communauté urbaine de yaoundé meetic ✓ - Forum Vos droits sur internet
- Compte desactivé par FB ✓ - Forum Facebook
2 réponses
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 097
Modifié le 16 avril 2019 à 10:04
Modifié le 16 avril 2019 à 10:04
Bonjour bienfaitmurhula,
Tu insères l'entête
http://www.cplusplus.com/reference/ctime/
Le
Tu ne définis pas ce qu'est "une" faute. Cela se complique, si par exemple, en écrivant "infromaticien" tu dois compter deux fautes parce qu'il y a une permutation de lettres et qu'il manque le pluriel. Par contre, si tu dois juste comparer le mot tapé "infromaticien" et "informaticiens" et, s'ils sont différents, indiquer qu'il y a une faute, cela se fait très facilement avec
Si tu dois définir des fautes comme étant l'absence d'identité entre les mots les uns à la suite des autres, tu dois :
- définir comment délimiter les mots
- décider quoi faire si l'utilisateur oublie un mot (par exemple, s'il tape toute la phrase sauf le mot "les", est-ce que tu comptes 1 faute, ou 9 fautes ?)
Sinon, quelques détails non informatiques, mais puisque ton programme consiste à vérifier l'existence de fautes, c'est dommage que le programme en contienne lui-même :
- l'orthographe de "le delais" devrait être "le délai"
- l'orthographe de "repeter" devrait être "répéter" ou "répétez"
- l'orthographe "vous avez saisis" devrait être "vous avez saisi"
- je dirais "des mots en %f <time> minutes" plutôt que "des mots dans %f <time> minutes"
Dal
Tu insères l'entête
time.h... une étude des fonctions accessibles par cet entête devrait te permettre de décompter le temps assez facilement avec une précision à la seconde près. Par contre, je ne comprends pas pourquoi le temps devrait être représenté sous forme d'un
double.
http://www.cplusplus.com/reference/ctime/
Le
scanf("%s",&s);devrait être
scanf("%s",s);car
sétant un tableau de
char, en indiquant juste
stu passes déjà le pointeur vers le premier élément du tableau.
Tu ne définis pas ce qu'est "une" faute. Cela se complique, si par exemple, en écrivant "infromaticien" tu dois compter deux fautes parce qu'il y a une permutation de lettres et qu'il manque le pluriel. Par contre, si tu dois juste comparer le mot tapé "infromaticien" et "informaticiens" et, s'ils sont différents, indiquer qu'il y a une faute, cela se fait très facilement avec
strcmp()accessible par
string.hou simplement en comparant successivement les
chardes deux mots.
Si tu dois définir des fautes comme étant l'absence d'identité entre les mots les uns à la suite des autres, tu dois :
- définir comment délimiter les mots
- décider quoi faire si l'utilisateur oublie un mot (par exemple, s'il tape toute la phrase sauf le mot "les", est-ce que tu comptes 1 faute, ou 9 fautes ?)
Sinon, quelques détails non informatiques, mais puisque ton programme consiste à vérifier l'existence de fautes, c'est dommage que le programme en contienne lui-même :
- l'orthographe de "le delais" devrait être "le délai"
- l'orthographe de "repeter" devrait être "répéter" ou "répétez"
- l'orthographe "vous avez saisis" devrait être "vous avez saisi"
- je dirais "des mots en %f <time> minutes" plutôt que "des mots dans %f <time> minutes"
Dal
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 097
Modifié le 16 avril 2019 à 18:36
Modifié le 16 avril 2019 à 18:36
Un autre problème avec ton code est que
http://www.cplusplus.com/reference/cstdio/scanf/
En fait, tu peux te servir de cette propriété pour décider que les mots sont délimités par des espaces (ce qui est le cas dans ton exemple, qui ne comporte pas de ponctuation), et faire une boucle répétant l'instruction
Par exemple, comme cela :
cela donne ceci :
Dal
scanf("%s",s);va arrêter sa lecture au premier espace rencontré.
http://www.cplusplus.com/reference/cstdio/scanf/
| specifier | Description | Characters extracted | +-----------+-------------+----------------------------------------------------------------+ | s | String of | Any number of non-whitespace characters, stopping at the first | | | characters | whitespace character found. A terminating null character is | | | | automatically added at the end of the stored sequence. | +-----------+-------------+----------------------------------------------------------------+
En fait, tu peux te servir de cette propriété pour décider que les mots sont délimités par des espaces (ce qui est le cas dans ton exemple, qui ne comporte pas de ponctuation), et faire une boucle répétant l'instruction
scanf()ci-dessus tant qu'il y a des mots saisis disponibles dans le tampon de l'entrée standard
stdin.
Par exemple, comme cela :
#include <stdio.h> #define NB_MOTS_ATTENDUS 10 int main(void) { char s[1000]; int nb_mots = NB_MOTS_ATTENDUS; printf("tapez : \"bonjour les informaticiens bientôt le délai de paiement est proche\"\n"); while (1) { int recup = scanf("%s", s); nb_mots = nb_mots - recup; printf("J'ai récupéré : [%s] (il faut encore %d mots)\n", s, nb_mots); if (nb_mots == 0) break; } printf("J'ai récupéré %d mots\n", NB_MOTS_ATTENDUS); return 0; }
cela donne ceci :
$ gcc -Wall 35977319.c
$ ./a.out
tapez : "bonjour les informaticiens bientôt le délai de paiement est proche"
bonjour les informaticiens bientôt le délai de paiement est proche
J'ai récupéré : [bonjour] (il faut encore 9 mots)
J'ai récupéré : [les] (il faut encore 8 mots)
J'ai récupéré : [informaticiens] (il faut encore 7 mots)
J'ai récupéré : [bientôt] (il faut encore 6 mots)
J'ai récupéré : [le] (il faut encore 5 mots)
J'ai récupéré : [délai] (il faut encore 4 mots)
J'ai récupéré : [de] (il faut encore 3 mots)
J'ai récupéré : [paiement] (il faut encore 2 mots)
J'ai récupéré : [est] (il faut encore 1 mots)
J'ai récupéré : [proche] (il faut encore 0 mots)
J'ai récupéré 10 mots
$
Dal
16 avril 2019 à 11:02
Modifié le 16 avril 2019 à 11:17