Problème avec compteur - C++ - Programmation
Marsh Posté le 12-02-2014 à 13:52:32
Bonjour,
Ton compteur ne fonctionne pas car tu lui demande d'incrementer ton nbchar en dehors de tout test.
Donc il te compte même les espace.
Pour ne pas qu'il te compte les espace ton code doit ressembler à celui ci
Code :
|
Ici si ton caractère == un espace alors il rentre dans le if
sinon tu rentre dans le else
J'ai compiler il fonctionne.
Si tu as des question n'hésite pas
Marsh Posté le 12-02-2014 à 13:58:59
Effectivement c'est bien plus clair!!! Merci beaucoup *-*
J'essaye dès que je rentre chez moi :-D
Marsh Posté le 12-02-2014 à 14:07:13
On peut aussi faire avec une boucle do..while
Code :
|
A+,
Marsh Posté le 12-02-2014 à 14:08:58
gilou a écrit :
|
Merci pour l'optimisation
Marsh Posté le 12-02-2014 à 14:13:18
Nous n'avons pas encore appris cette façon de présenter en cours :-/
Je vais m'y pencher! Merci à vous deux!!!
Marsh Posté le 12-02-2014 à 14:15:40
J'avais pas fini d'éditer (un tab malheureux, l’absence de mon A+, le prouve ), il faut décompter le \n final.
Je vois aussi à l'instant qu'il manque le int devant le main et le return a la fin (le int est obligatoire en C, si des compilos marchent sans, c'est leur pb)
Ça peut encore s'optimiser un peu:
Code :
|
A+,
Marsh Posté le 12-02-2014 à 14:20:35
Super Gilou!!!
Comment tu met un code en couleur sur le fofo ? C'est bien plus clair :')
Marsh Posté le 12-02-2014 à 14:29:20
J'utilise le bouton C/C++ et je remplace les tags: [cpp]...[/cpp] par [code=c]...[/code] (cette 2e partie est pas nécessaire pour du C, mais c'est pas exactement les mêmes couleurs qu'avec le C++)
(avec le premier [ en italique ici pour pas que le tout soit interprété comme un tag)
Ça marche avec les autres langages aussi
A+,
Marsh Posté le 12-02-2014 à 14:46:12
OrcusZ a écrit : Merci pour l'optimisation |
Ça peut encore s'optimiser un peu :
Code :
|
A+,
Marsh Posté le 12-02-2014 à 14:55:56
gilou a écrit : Ça peut encore s'optimiser un peu :
A+, |
La sur un codeblock portable au boulot l'optimisation j'ai passé outre l'optimisation
Et vu que c'est une partie de son code on peut encore poussé l'opti plus loin mais il débute avec les joie de la programmation en C/C++...
Faut pas le démoralisé trop vite non plus
En tout cas c'est bien car ainsi oloxis a pu voir qu'il y a plusieurs façon d'écrire un programme
Marsh Posté le 12-02-2014 à 15:03:16
Oui pour le contenu de la boucle.
Par contre,
while ((caractere = getchar()) != '\n') {
....
}
C'est un idiome en C autant y être exposé le plus tôt possible.
A+,
Marsh Posté le 12-02-2014 à 15:42:12
gilou a écrit : Oui pour le contenu de la boucle. |
Je sais bien mais je fait pas de cette méthode, je met tous dans un tableau et je me débarrasse directement de \n ( avec un lenght de ma chaine de caractère saisie )
Enfin chacun ces méthodes.
A+ et merci
Marsh Posté le 12-02-2014 à 16:03:05
Donc pas optimal au vu de la mémoire consommée
A+,
Marsh Posté le 12-02-2014 à 17:00:01
Sinon en version C++:
Code :
|
Marsh Posté le 12-02-2014 à 17:38:33
Broblème plus que résolut! Merci à tous vous êtes géniaux!!
Marsh Posté le 13-02-2014 à 03:52:06
Citation : std::cout << " Votre phrase : " << std::endl; |
Non, il voulait plutôt
std::cout << " Votre phrase : " << std::flush;
A+,
Marsh Posté le 12-02-2014 à 11:37:56
Bonjour,
Quand je fais un compteur, j'aimerais bien qu'il ne compte plus les espaces comme des caractères
Voilà la partie du code en question! :
printf(" Votre phrase : " );
caractere=getchar();
while(caractere != '\n'){
caractere=getchar();
nbchar = nbchar+1;
if(caractere==' ') nbespace = nbespace+1;
}
Merci beaucoup!!