exerice langage C a resoudre

exerice langage C a resoudre - C - Programmation

Marsh Posté le 05-03-2016 à 21:17:44    

Bonjour
 
j'aimerais bien savoir comment rédiger un programme en langage C permettant de calculer le nombre des mots saisis (et séparés avec un ou plusieurs espaces) dans une phrase terminée par un point sans utiliser l'instruction chaine (ça je sais comment la faire) mais juste avec l'instruction boucle et if else si c'est nécessaire.
 
Exemple
entrée : le monde est petit.
sortie : le nombre des mots est : 4
 
cordialement

Reply

Marsh Posté le 05-03-2016 à 21:17:44   

Reply

Marsh Posté le 05-03-2016 à 22:11:49    

Citation :

l'instruction chaine


Qu'entends tu par ceci?

Reply

Marsh Posté le 06-03-2016 à 00:06:27    

La réponse à ma question en utilisant l'instruction chaine se fait comme ceci :  
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5. char str[200];
  6. int w=0,i=0;
  7. printf("Ecrivez votre phrase : " );
  8. gets(str);
  9. for(i=0;str[i]!='\0';i++)
  10. {
  11. if(str[i]!=' '&&str[i]!='\t')
  12. {
  13. w++;
  14. while(str[i]!=' '&&str[i]!='\t')
  15. i++;
  16. }
  17. }
  18. printf("Le nombre des mots est %d",w);
  19.     return 0;
  20. }


 
et je demande si c'est possible de réaliser un tel programme juste if les boucke et if else sans utiliser la chaine


Message édité par gilou le 06-03-2016 à 00:29:44
Reply

Marsh Posté le 06-03-2016 à 19:23:23    

Déjà à mon avis il faut oublier le mot instruction, cela n'a de sens qu'en language assembleur. On peut parler de structures de contrôle peut-être et "l'instruction chaîne" c'est simplement la syntaxe utilisée comme ça a été défini quand le language C a été inventé.
 
Pour répondre à ta question on peut remplacer array[index] par *(array+index) mais cela revient au même au final, c'est juste une autre façon d'écrire...
 
Concernant ton code, attention à l'indentation essentielle pour s'y retrouver (enfin je suppose que c'est un problème de copier-coller).

Reply

Marsh Posté le 07-03-2016 à 15:49:58    

C'est dans ces cas la qu'on apprécie le C++:
 

Code :
  1. #include <string>
  2. #include <iostream>
  3. int main()
  4. {
  5.     std::string word;
  6.     int nb_words = 0;
  7.     std::cout << "Ecrivez votre phrase : " << std::flush;
  8.     while (std::cin.peek() != '\n') {
  9.         std::cin >> word;
  10.         if (!std::cin) break;
  11.         ++nb_words;
  12.     }
  13.     std::cout << "Le nombre des mots est " << nb_words << std::endl;
  14.     return 0;
  15. }


 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 07-03-2016 à 18:41:54    

Code :
  1. perl -e "print split(/ +/,<> )+0;"

:o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed