PGCD PPCM
Fermé
damahdi
Messages postés
2
Date d'inscription
mercredi 25 avril 2018
Statut
Membre
Dernière intervention
25 avril 2018
-
Modifié le 25 avril 2018 à 18:21
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 26 avril 2018 à 12:02
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 26 avril 2018 à 12:02
1 réponse
yg_be
Messages postés
21303
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
25 avril 2018 à 22:05
25 avril 2018 à 22:05
bonsoir, je pense que tu devrais d'abord faire des exercices beaucoup plus simples.
je te suggère de d'abord calculer la somme de deux nombres.
je te suggère de d'abord calculer la somme de deux nombres.
25 avril 2018 à 22:09
Modifié le 26 avril 2018 à 11:35
- dans le code que tu postes, tu n'appelles pas valablement ta fonction dans main, tu ne fais que reproduire son prototype, sans passer des valeurs et variables définies dans main correspondantes aux types attendus
- tu n'as pas définit non plus dans main les variables que tu dois passer à ta fonction
- ton prototype devrait sans doutes être plutôt (même si cela n'a pas d'impact direct sur le bon fonctionnement du code, c'est plus rigoureux)
- ne sert à rien
- change la valeur de l'entier pointé par le pointeur pgcd en lui affectant l'adresse mémoire de a, ce n'est sans doutes pas ce que tu veux faire et ton code devrait probablement être pour changer la valeur de l'entier pointé par le pointeur pgcd en lui affectant le contenu de ... avec ton code, tu te retrouves donc avec une valeur affectée à l'emplacement pointé par qui n'a rien à voir avec la valeur calculée de ...
- selon son prototype, ta fonction retourne un , mais cette fonction ne comporte aucune instruction retournant quoi que ce soit
Le fait que tu fasses ce type d'erreurs signifie que tu dois revoir les bases du langage C et je suis assez d'accord avec la suggestion de yg_be :-)
Cela dit, avec ces indications, et ton cours de C, tu devrais arriver à corriger ton code sur le plan du langage C.
Ensuite, il faudra que tu t'attaques à l'algorithme mathématique.
Modifié le 26 avril 2018 à 12:05
#include <stdio.h> #include <stdlib.h> #define TOUT_VA_BIEN 1 #define RIEN_NE_VA_PLUS 0 /** * addition() - calculer la somme de deux entiers * @a: premier entier * @b: second entier * @somme: résultat de la somme * * Calcule la somme de deux entiers en stockant le résultat * à l'adresse pointée par le 3ème paramètre * * Retourne: TOUT_VA_BIEN si le résultat est inférieur à 10 * et RIEN_NE_VA_PLUS sinon */ int addition(int a, int b, int * somme) { *somme = a + b; if (*somme < 10) return TOUT_VA_BIEN; else return RIEN_NE_VA_PLUS; } int main(void) { int a = 2; int b = 3; int somme; int statut; statut = addition(a, b, &somme); printf("La somme de %d et %d vaut %d\n", a, b, somme); if (statut == TOUT_VA_BIEN) printf("Tout va bien :-)\n"); if (statut == RIEN_NE_VA_PLUS) printf("Alerte : l'addition des deux nombres n'est pas " "inférieure à 10\n"); return EXIT_SUCCESS; }cela devrait t'aider à comprendre tout cela :-)