Problème en C
Fermé
darkchristophetd
Messages postés
1100
Date d'inscription
mardi 26 février 2008
Statut
Contributeur
Dernière intervention
14 novembre 2010
-
27 sept. 2008 à 10:58
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 - 27 sept. 2008 à 17:11
darkchristophetd Messages postés 1100 Date d'inscription mardi 26 février 2008 Statut Contributeur Dernière intervention 14 novembre 2010 - 27 sept. 2008 à 17:11
3 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 sept. 2008 à 12:09
27 sept. 2008 à 12:09
Salut,
regarde ce code
regarde ce code
#include <stdio.h> #include <stdlib.h> long pgcd (long a,long b); int main(int argc, char *argv[]) { long a = 0, b = 0; printf("Entrez les deux nombres dont vous voulez \nle PGCD (en commençant par le plus petit)"); scanf("%ld", &a); getchar(); printf("\n Puis le deuxième."); scanf("%ld", &b); printf("\n %ld", pgcd(a,b)); system("PAUSE"); return 0; } long pgcd (long a,long b) //fonction de calcul du PGCD { long r = 1; while ( r != 0) //tant que le reste n'est pas égal à zéro { r = b % a; b = a; a = r; } return b; }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 sept. 2008 à 12:32
27 sept. 2008 à 12:32
Re,
les erreurs
1. tu as oublié un %
ici scanf("ld", &b);
tu dois écrire
2. tu n'appelles pas ta fonction pour afficher pgcd
printf("\n %ld", b);//puis on affiche le pgcd calculé dans la fonction (b)
ça n'affiche que la valeur de b et pas le retour de la fonction
donc j'ai mis cette ligne
3. la variable r (pour le reste)
la variable r n'est pas passer à la fonction
elle est juste une variable locale qu'on utilise seulement dans la fonction
main n'a pas besoin de voir la variable r
dans la fonction la variable on l'initialise à 1 juste pour entrer dans la boucle
tout le calcul se fera dans la boucle
les erreurs
1. tu as oublié un %
ici scanf("ld", &b);
tu dois écrire
scanf("%ld", &b);
2. tu n'appelles pas ta fonction pour afficher pgcd
printf("\n %ld", b);//puis on affiche le pgcd calculé dans la fonction (b)
ça n'affiche que la valeur de b et pas le retour de la fonction
donc j'ai mis cette ligne
printf("\n %ld", pgcd(a,b));
3. la variable r (pour le reste)
la variable r n'est pas passer à la fonction
elle est juste une variable locale qu'on utilise seulement dans la fonction
main n'a pas besoin de voir la variable r
dans la fonction la variable on l'initialise à 1 juste pour entrer dans la boucle
tout le calcul se fera dans la boucle
darkchristophetd
Messages postés
1100
Date d'inscription
mardi 26 février 2008
Statut
Contributeur
Dernière intervention
14 novembre 2010
459
27 sept. 2008 à 17:11
27 sept. 2008 à 17:11
super merci bcp !