Aide je ne trouve pas mon erreur!!
Résolu/Fermé
Coucou1504
Messages postés
60
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
12 février 2010
-
20 févr. 2008 à 18:28
Coucou1504 Messages postés 60 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 12 février 2010 - 21 févr. 2008 à 15:54
Coucou1504 Messages postés 60 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 12 février 2010 - 21 févr. 2008 à 15:54
A voir également:
- Aide je ne trouve pas mon erreur!!
- Erreur 0x80070643 - Accueil - Windows
- Pourquoi ma tv ne trouve pas toutes les chaînes - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
7 réponses
Utilisateur anonyme
20 févr. 2008 à 18:37
20 févr. 2008 à 18:37
Bonsoir,
qu'est-ce qui ne fonctionne pas ?
enlever le commentaire sur la ligne qui appelle la fonction add et peut être que ...
qu'est-ce qui ne fonctionne pas ?
enlever le commentaire sur la ligne qui appelle la fonction add et peut être que ...
Coucou1504
Messages postés
60
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
12 février 2010
3
20 févr. 2008 à 18:42
20 févr. 2008 à 18:42
merci de ton aide. En effet j'ai oublié de dire ce qui n'allait pas!!
Si j'enleve ce qe j'ai mis en commentaire, mon pg se bloque au niveau de l'addition. Pour saisir sa fonctionne!!!
Encore merci, mais j'y avais pensé mais il me bloque tout!!!
Si j'enleve ce qe j'ai mis en commentaire, mon pg se bloque au niveau de l'addition. Pour saisir sa fonctionne!!!
Encore merci, mais j'y avais pensé mais il me bloque tout!!!
Utilisateur anonyme
20 févr. 2008 à 18:45
20 févr. 2008 à 18:45
L'algoritme semble bon, c'est ce qui m'inquiète. alors add ne serait-il pas un mot réservé ?
essaies truc à la palce.
essaies truc à la palce.
Coucou1504
Messages postés
60
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
12 février 2010
3
20 févr. 2008 à 18:54
20 févr. 2008 à 18:54
J'ai donc remplacer les add par truc!! Ca n'a rien changer!! Mais je me pose une question, les variable dans ma fonction, doivent-elles être les même que dans mon programme principal??
Merci de votre aide!!
Merci de votre aide!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
20 févr. 2008 à 19:53
20 févr. 2008 à 19:53
Bonjour,
Il y a deux petites erreurs, la première est que tu mélange les float et les int et que ça ne fait pas très bon ménage.
1) Dans les scanf (%f pour les float, %d pour les int) Bon en pratique ça marche mais Brrrrr
2) dans l'addition :
5.0f / 3.0f = 1.6666666...f
5 / 3 = 0
La deuxième est la fonction saisir. En C les paramètres sont passés "par valeur", on dit aussi "par copie", petit exemple:
Ce code donnera la sortie suivante:
Avant ma fonction a = 2
Au début de ma fonction a = 2
A la fin de ma fonction a = 4
Après ma fonction a = 2
Pour palier à ce problème il y a les pointeurs afin de faire un passage d'argument par adresse. (Le pointeur lui même est une copie mais les données pointées sont toujours les mêmes.
Exemple:
Voilou,
M.
Il y a deux petites erreurs, la première est que tu mélange les float et les int et que ça ne fait pas très bon ménage.
1) Dans les scanf (%f pour les float, %d pour les int) Bon en pratique ça marche mais Brrrrr
2) dans l'addition :
5.0f / 3.0f = 1.6666666...f
5 / 3 = 0
La deuxième est la fonction saisir. En C les paramètres sont passés "par valeur", on dit aussi "par copie", petit exemple:
void maFcontion( int a ) { printf( "Au début de ma fonction a = %d\n", a ); a = 4; printf( "A la fin de ma fonction a = %d\n", a ); } int a = 2; printf( "Avant ma fonction a = %d\n", a ); maFonction( a ); printf( "Après ma fonction a = %d\n", a );
Ce code donnera la sortie suivante:
Avant ma fonction a = 2
Au début de ma fonction a = 2
A la fin de ma fonction a = 4
Après ma fonction a = 2
Pour palier à ce problème il y a les pointeurs afin de faire un passage d'argument par adresse. (Le pointeur lui même est une copie mais les données pointées sont toujours les mêmes.
Exemple:
void saisir( float *pa, float *pb ) { *pa = 2; scanf( "%f", pb ); // pas de '&', pb est déjà une adresse. } float a, b; saisir( &a, &b );
Voilou,
M.
Mahmah
Messages postés
496
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
22 juin 2010
125
20 févr. 2008 à 20:09
20 févr. 2008 à 20:09
Non, le nom des paramètres peuvent être totalement différents des noms du variables du programme.
Les codes suivants est valides :
1)
2) Ton cas.
3)
4)
5)
Voilà les cas les plus courants.
M.
Les codes suivants est valides :
1)
int a = 2; void maFonction( int b ) { printf( "%d", b ); } maFonction( a ); // Affiche 2
2) Ton cas.
int a = 2; void maFonction( int a ) { a = 4; } maFonction( a ); // la fonction n'a aucun effet, elle modifie sa copie du paramètre.
3)
int a = 2; void maFonction( int b ) { b = a; // a est visible depuis l'intérieur de la fonction printf( "%d", b ); } maFonction( 4 ); // Affichera 2
4)
int a = 2; void maFonction( int a, int b ) { b = a; // Le a de l'environement global est masqué par le paramètre du même nom. printf( "%d", b ); } maFonction( a, 4 ); // Affichera 4
5)
int a = 2; void maFonction( int b) { a = 4; printf( "%d", b ); } maFonction( 3 ); // Met 4 dans a, Affiche 3
Voilà les cas les plus courants.
M.
Coucou1504
Messages postés
60
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
12 février 2010
3
21 févr. 2008 à 15:54
21 févr. 2008 à 15:54
Merci beaucoup!!!
La notion de pointeur je ne l'ai pas encore bien intégrer, il va falloir que je revois mes cours!!!
Merci beaucoup!!!
La notion de pointeur je ne l'ai pas encore bien intégrer, il va falloir que je revois mes cours!!!
Merci beaucoup!!!