TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 | |
| Auteur | Message |
|---|---|
| 1 visiteur sur ce sujet (1 anonyme) | |
| Page : 1 | |
théoden
|
# Posté le 03/12/2005 à 14:19:43 |
![]() Groupe : Membres |
bon voila mon programme
Code : C #include <stdio.h> #include <stdlib.h> int main(int argc,int *argv[]) { float taille =0 ; const long MATRICULE = 60 ; unsigned char age =0 ; int poid =0 ; printf("indiquez votre age\n"); scanf("%d", &age); printf("indiquez votre taille\n"); scanf("%f", &taille); printf("indiquez votre poid\n"); scanf("%d", &poid); printf("vous avez donc %d ans,\n vous mesurez %f metres,\n vous pesez %d\n",age, taille, poid); printf("votre matricule assignez est le %d \n",MATRICULE); system("pause"); return 0; } j'ai fait ce programme ne esseyan de regrouper la plupart des informations aprise dans le cour sur les variables en c Mais j'ai un problème quand je veux afficher ma constante "matricule" sa m'affiche 0
Ou est le problème svp?
merci d'avance |
drexil
|
# Posté le 03/12/2005 à 14:23:07 |
|
Acolyte du pourfendeur Groupe : Membres |
%ld pas %d, %d est un int, %ld est un long
|
théoden
|
# Posté le 03/12/2005 à 14:31:28 |
![]() Groupe : Membres |
Dans le dernier printf je remplace %d par %ld comme tu me l'as dis mais ca fait toujour pareil
dois-je me suicider?
|
Saimoun
|
# Posté le 03/12/2005 à 14:36:04 |
La vie est la vie !![]() Groupe : Membres |
|
théoden
|
# Posté le 03/12/2005 à 14:38:38 |
![]() Groupe : Membres |
c'est pas possible moi aussi j'utilise dev c++ et tout marche bien sauf la derniere ligne ou au lieu de m'afficher
"votre matricule est le 60" sa m'écrit "votre matricule est le 0" je prépare la corde
|
Saimoun
|
# Posté le 03/12/2005 à 14:43:54 |
La vie est la vie !![]() Groupe : Membres |
Essaye d'utiliser un int ou même un char, des fois les compilateurs gèrent mal les long int !
C'est pas sûr que ça change quelque-chose, mais ça ne coûte rien d'essayer !
|
Polak
|
# Posté le 03/12/2005 à 14:44:11 |
|
Groupe : Membres |
En effet aussi j'ai la meme erreur que toi je ne comprends pas pourquoi :x
YEAH |
Seeme
|
# Posté le 03/12/2005 à 14:46:44 |
Gnap!![]() Groupe : Membres |
Déja, il vaut mieux définire tes constantes après les commandes préprocesseur (c'est pas obligé, mais bon...)
Ensuite, un long, pour mettre 60 dedans, c'est inutile, met plutôt int, et chez moi aussi, le prog marche correctement... et il y a pas de fautes apparement dans ton code....
Édité
le 03/12/2005 à 14:47:07
par Seeme
|
théoden
|
# Posté le 03/12/2005 à 14:47:10 |
![]() Groupe : Membres |
j'ai remplacer le
const long matricule = 60; par const int puis const char mais sa ne fonctionne tjr pas et puis même si sa avait fonctionner sa m'embete de contourner le pblm au lieu de le régler |
Polak
|
# Posté le 03/12/2005 à 14:48:53 |
|
Groupe : Membres |
Citation : Carter
En effet aussi j'ai la meme erreur que toi je ne comprends pas pourquoi :x
EDIT: quand je remplace "long" par "int", je n'ai que le 6 :x YEAH |
théoden
|
# Posté le 03/12/2005 à 14:51:14 |
![]() Groupe : Membres |
ca y'est sa marche j'ai déclarer la constante en premier et sa marche (c'est bon a savoir)
pour ce qui est du 60 au début j'avais mis 2059 et j'ai mis 60 ensuite pour voir si le bug venait de la merci Seeme et aussi comment on fait pour préciser le nbr de chiffre a affiché avec le float?
Édité
le 03/12/2005 à 14:55:00
par théoden
|
Seeme
|
# Posté le 03/12/2005 à 15:02:44 |
Gnap!![]() Groupe : Membres |
Je ne crois pas que ce soit possible, au pire, tu le transformes en tableau de caractère et tu coupes (en ajoutant "\0") là ou tu veux.
|
Saimoun
|
# Posté le 03/12/2005 à 15:10:54 |
La vie est la vie !![]() Groupe : Membres |
Non, il y a plus simple, tu fais par exemple :
Code : C Là, ça affiche 2 chifres après la virgule !
|
rz0
|
# Posté le 03/12/2005 à 16:13:15 |
meuh![]() Groupe : Membres |
Je viens de compiler le prog avec quelques mineurs ajustement pour que ça ressemble à quelque chose et ça marche.
Les ajustements sont : - j'ai mis char *argv[] comme il se doit - j'ai mis %hhu au lieu de %d pour le premier scanf avec unsigned char * en argument - j'ai enlevé le system("pause") car je ne suis pas sous windows et que c'est une ... Je ne vois pas ce qui n'allait pas avec le premier code excepté ce que j'ai dit...
|
théoden
|
# Posté le 03/12/2005 à 16:32:04 |
![]() Groupe : Membres |
ok est ce que quelqu'un pourrait me dire la correspondance par exemple
pour un int il faut un %d avec int, char, long, float, double et aussi quelle est la regle pour la précision après la virgule merci |
rz0
|
# Posté le 03/12/2005 à 16:42:38 |
meuh![]() Groupe : Membres |
lis une doc sur le scanf
http://www.opengroup.org/onlinepubs/009695399/functions/scanf.html
|
théoden
|
# Posté le 03/12/2005 à 17:23:40 |
![]() Groupe : Membres |
Vous voulez vraiment que j'utilise ma corde
je demande juste par exemble Code : C int variable1 = 5; long variable2 = 10; char variable3= 15; float variable4 = 20; double variable5 = 25; printf("%d", variable1); printf("%(je met quoi la?)", variable2); printf("%(je met quoi la?)", variable3); printf("%(je met quoi la?)", variable4); printf("%(je met quoi la?)", variable5); bon c'est un peu lourd mais je pense que c'est assez clair. |
pacool
|
# Posté le 03/12/2005 à 17:39:51 |
J'aime le C Car le C C Cool![]() Groupe : Membres |
Pour int long et char c'est %d et pour float et double c'est %f
(%f = nombre décimal, %d = nombre entier)
|
rz0
|
# Posté le 03/12/2005 à 17:42:58 |
meuh![]() Groupe : Membres |
Bon bah je veux bein t'accorder qu'avec juste les cours de m@t actuels tu ne puisses pas lire de doc donc pour tes "types de base" que tu as appris :
%c char Note : pour les entiers de petite taille tu dois utiliser signed char à la place de char comme t'enseigne m@t, char c'est pour contenir des caractères (qui sont en effet des entiers mais traités un peu spécialement). %hhd signed char %hhu unsigned char %d int %u unsigned int %ld long int %lu unsigned long int %f float (valable pour les double aussi dans les printf pour une raison que vous verrez plus tard) %lf double (valable aussi pour les float dans les printf pour une raison blahblah) pacool tu dis n'imp
|
théoden
|
# Posté le 03/12/2005 à 17:45:47 |
![]() Groupe : Membres |
Citation : drekil
%ld pas %d, %d est un int, %ld est un long
alor %ld sa correspond a quoi Citation : rz0 - j'ai mis %hhu au lieu de %d pour le premier scanf avec unsigned char * en argument
et %hhu sa correspond a quoi et si y'en a d'autre vous pouvez me les dires svp édit moi: dsl j'avai pas vu ton msg édit2: c'est quoi long int (ca éxiste pas long tout court) édit3: désoler de poser toute ces questions mais plus j'en aprend et plus j'ai de question rz0 j'ai pas bien compris le truc sur le char j'ai relu le cour en diagonal et je vois des "signed" nul part juste des unsigned pour dire que c'est que positif
Citation : rz0 pacool tu dis n'imp
n'empeche que c'est ce qui est écrit dans le cour
Édité
le 03/12/2005 à 18:16:48
par théoden
|
théoden
|
# Posté le 04/12/2005 à 19:36:45 |
![]() Groupe : Membres |
Code : C
#include <stdio.h> #include <stdlib.h> int main(int argc,char*argv[]) { const long MATRICULE = 2059 ; float taille =0 ; unsigned char age =0 ; int poid =0 ; printf("indiquez votre age\n"); scanf("%d", &age); printf("indiquez votre taille\n"); scanf("%f", &taille); printf("indiquez votre poid\n"); scanf("%d", &poid); printf("vous avez donc %hhu ans\n",age); printf("vous mesurez %0.2f metres\n", taille); printf("vous pesez %d kg\n", poid); printf("votre matricule assignez est le %d \n",MATRICULE); system("pause"); return 0; Voila mon code final qui marche parfaitement mais je voulait vous demandez est ce que j'ai oublié une convention de c ou alors et ce que j'ai mis un truc (du style %d au lieu de %hhu: dans les 2 cas sa marche très bien mais il faut mettre hhu a ce que j'ai lu) qui n'empeche pas le bon fonctionnement mais ou c'est pas éxactement ce que je dois faire. Ou encore des sauts de ligne manquant (ou en trop) enfin des ptits truc pour que mon code (même si c'est pas grand chose ) soit irréprochable.
Merci bien |
bluestorm
|
# Posté le 04/12/2005 à 19:55:18 |
dont ask to ask![]() Groupe : Membres |
assign_é_, sinon il a bien dit (et répété) que c'était %hhu pour le scanf de l'age, non ?
De plus, si le matricule est un long, il faut faire un printf.. %ld et pas %d. |
Retour au forum "Langage C" ou à la liste des forums
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
141 Zéros connectés |
8 requêtes |
0.1198s (0.1042s)
