Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Scandigt

47 réponses
Avatar
LMC
Bonjour,
Voici l'exercice que je tente de résoudre :
/* scandigt lit une saisie sans espaces de séparation et range les
caractères
identiques via une spécification de largeur, dans différentes variables
*/
#include <stdio.h> /* pour printf, scanf */
#include <stdlib.h>

int main(int argc, char *argv[])
{
long one, two, three, four, five;
printf("Entrez un nombre entier selon le modele \n");
printf(" abbcccddddeeeee\n");
printf("les lettres a, b, c, d, e designant\n");
printf("des chiffres identiques.\n");
scanf("%1ld %2ld %3ld %4ld %5ld\n", &one, &two, &three, &four,&five);
printf("%ld\n%ld\n%ld\n%ld\n%ld\n", one, two, three, four, five);

system("PAUSE");
return 0;

J'obtiens le résultat suivant après compilation :
Entrez un nombre entier selon le modèle
abbcccddddeeeee
les lettres a, b, c, d, e désignant
des chiffres identiques. j'appuie sur Enter et j'obtiens
122333444455555

mais je n'obtiens pas la suite qui devrait être
1
22
333
4444
55555
Merci pour toute aide.

--
@++
LMC

7 réponses

1 2 3 4 5
Avatar
espie
In article <48bbd5ad$0$7690$,
candide wrote:
Au demeurant, je considère un débutant comme un utilisateur et donc à
ce titre, il n'a rien à connaître de la mécanique interne, de la même
façon que quelqu'un qui voyage en voiture d'un point A à un point B n'a
pas à connaître le nombre de cylindres, il a juste besoin de communiquer
avec la voiture avec certains instruments, certaines interfaces disons
(les pédales, le volant, les voyants et témoins, le bouchon d'essence,
etc), à la limite, il n'a même pas besoin de savoir qu'il y a un moteur.
Idem pour le C-utilisateur même si ma comparaison n'est pas absolue.



ouais, bof... vu la facon dont est pense le langage, tu n'iras vraiment
pas loin avec le C sans acquerir rapidement des notions de compilation.
Le `tout se passe comme si' est vraiment central dans le langage.

Pour reprendre ta comparaison, faire du C sans comprendre la compilation,
c'est un peu comme essayer de conduire une voiture a boite de vitesse
manuelle sans savoir a quoi servent les vitesses et en experimentant avec
l'embrayage...
Avatar
LMC
Bonjour,
"Antoine Leca" a écrit dans le message de news:
g9gfrh$otb$
En news:, LMC va escriure:

Ce que je ne comprends, c'est que certains du forum obtiennent le
résultat et moi pas. Mon IDE (DevC++) n'est-il pas bon ?



Enlève le n à la fin de la chaîne de format de scanf, et ne met pas non
plus d'espace ; c'est cela qui cause le comportement (apparamment)
incompréhensible.



Je viens de faire un essai avec Microsoft VisualC++ et cela fonctionne.
Donc, je vais travailler dorénavant avec cet IDE.

Et si tu ne devais retenir qu'une seule chose de cet exercice, c'est qu'il
ne faut jamais mettre un espace ou un n à la fin d'une chaîne de format
de
scanf.
En fait, c'est ce que _moi_ je vais retenir de cette enfilade :-)



OK, je vais le noter dans le livre.

> Un autre manière d'en faire profit serait de retenir que scanf est une
fonction complexe, avec beaucoup de possibilités de mal la mettre en
½uvre.



Je vais également l'indiquer dans le livre. Je souhaite, simplement, de ne
pas l'oublier. Mémoire quand tu nous tiens !


Antoine

Grand merci

--
@++
LMC
Avatar
candide
Antoine Leca a écrit :

(enfin à lui de dire), ce qu'il a dit c'est qu'il est sous Devc++
autrement dit son compilateur est Mingw.


s/Mingw/Gcc/ ?



Non.
Dev-C++ est un environnement de programmation (relativement) ouvert, ce qui
fait que tu peux utiliser différents compilateurs, et Mingw est seulement
l'un d'entre eux, qui est livré avec l'environnement.



Tiens, c'est ce que j'ai dit un jour ici


http://groups.google.fr/group/fr.comp.lang.c/msg/e2162329040b58ba?hl=fr


et qui avait reçu de la part de Pierre Maurette un démenti formel,
catégorique et cinglant (et qui a l'occasion avait fait preuve d'un joli
débordement de haine, je mets ça sur le compte de problèmes sexuels
passagers, il semble s'être calmé depuis mais ça le reprend quand même
de temps en temps, je dis ça aussi pour prévenir Wykaaa qui semble être
aussi dans son colimateur).
Avatar
candide
Marc Espie a écrit :

Pour reprendre ta comparaison, faire du C sans comprendre la compilation,
c'est un peu comme essayer de conduire une voiture a boite de vitesse
manuelle sans savoir a quoi servent les vitesses et en experimentant avec
l'embrayage...




Le conducteur connait le levier de vitesses et la pédale d'embrayage, ce
sont des interfaces utilisateur. Pas les pignons de boite, l'arbre de
transmission ou la fourchette d'embrayage qui sont des interfaces
mécanicien. Et puis, les boites automatiques c'est très bien aussi ;)
Avatar
espie
In article <48bbf06b$0$19701$,
candide wrote:
Marc Espie a écrit :



Pour reprendre ta comparaison, faire du C sans comprendre la compilation,
c'est un peu comme essayer de conduire une voiture a boite de vitesse
manuelle sans savoir a quoi servent les vitesses et en experimentant avec
l'embrayage...





Le conducteur connait le levier de vitesses et la pédale d'embrayage, ce
sont des interfaces utilisateur. Pas les pignons de boite, l'arbre de
transmission ou la fourchette d'embrayage qui sont des interfaces
mécanicien. Et puis, les boites automatiques c'est très bien aussi ;)



Oui, et python est un tres bon langage...

Une boite automatique, soit tu perds pas mal de performance, soit tu
la payes la peau des fesses. Ne me dis pas que tu ne vois pas l'analogie
boite manuelle/C.
Avatar
Marc Boyer
On 2008-09-01, candide wrote:
Marc Boyer a écrit :

Et tu utilisais quoi comme terme pour évoquer le truc avec lequel
tu programmais ?



J'évitais soigneusement les situations où j'aurais eu à évoquer ce
"truc" et donc je me contentais de préciser les effets de mon code au
niveau de son exécution.



ok

Au demeurant, je considère un débutant comme un utilisateur et donc à
ce titre, il n'a rien à connaître de la mécanique interne, de la même
façon que quelqu'un qui voyage en voiture d'un point A à un point B n'a
pas à connaître le nombre de cylindres, il a juste besoin de communiquer
avec la voiture avec certains instruments, certaines interfaces disons
(les pédales, le volant, les voyants et témoins, le bouchon d'essence,
etc), à la limite, il n'a même pas besoin de savoir qu'il y a un moteur.



Non, mais c'est bien qu'il sache quelle voiture il a, la différence
entre essence et Diesel, etc.

Marc Boyer
Avatar
candide
Marc Espie a écrit :

Ne me dis pas que tu ne vois pas l'analogie
boite manuelle/C.



Si, si et c'est une très bonne analogie.
1 2 3 4 5