Bonjour à tous,
Je fais un programme de détermination du PGCD, PPCM. Ce programme va être transformé et je ferai apparaitre des fonction quand il sera opérationnel.
Je voudrais comparer les valeurs de mes deux tableaux et prendre la plus grande. J'ai fait deux boucles for mais il semble que le programme sort immédiatement des boucles. Je ne vois pas l'erreur.
Merci de m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 #include <stdio.h> #include<conio.h> #include<math.h> int main(int argc, char *argv[]) { int nombre1_entre = 0; int nombre2_entre = 0; int tableau_diviseurs_de_nombre1[100]={1}; int tableau_diviseurs_de_nombre2[100]={1}; int position_diviseur_nombre1 = 1; int position_diviseur_nombre2 = 1; int boucle_diviseurs_nombre1 = 0; int boucle_diviseurs_nombre2 = 0; int commun_diviseur = 1; int diviseur; printf("Ce programme permet de déterminer le PGCD et le PPCM de deux nombres donnes\n\n"); printf("\n\nEntrez le premier nombre : "); scanf("%d",&nombre1_entre); printf("\n\nEntrez le second nombre : "); scanf("%d",&nombre2_entre); // Détermination de tous les diviseurs de nombre1_entré diviseur = 0; printf("\n\nListe de tous les diviseurs du premier nombre : \n\n%d\t",tableau_diviseurs_de_nombre1[0]); for(diviseur = 2 ; diviseur <= nombre1_entre ; diviseur++) { if (nombre1_entre%diviseur==0 && diviseur<=nombre1_entre) { tableau_diviseurs_de_nombre1[position_diviseur_nombre1]=diviseur; printf("%d\t",tableau_diviseurs_de_nombre1[position_diviseur_nombre1]); position_diviseur_nombre1++; } } printf("\n\n"); // Détermination de tous les diviseurs de nombre2_entré diviseur = 0; printf("\n\nListe de tous les diviseurs du deuxieme nombre : \n\n%d\t",tableau_diviseurs_de_nombre2[0]); for(diviseur = 2 ; diviseur <= nombre2_entre ; diviseur++) { if (nombre2_entre%diviseur==0 && diviseur<=nombre2_entre) { tableau_diviseurs_de_nombre2[position_diviseur_nombre2]=diviseur; printf("%d\t",tableau_diviseurs_de_nombre2[position_diviseur_nombre2]); position_diviseur_nombre2++; } } printf("\n\n\n"); // Déterminations des diviseurs communs for (boucle_diviseurs_nombre1 = 0 ; boucle_diviseurs_nombre1 == position_diviseur_nombre1 ; boucle_diviseurs_nombre1++); { printf("%d\t%d\n",boucle_diviseurs_nombre1,boucle_diviseurs_nombre2); for (boucle_diviseurs_nombre2 = 0 ; boucle_diviseurs_nombre2 == position_diviseur_nombre2 ; boucle_diviseurs_nombre2++) { if (tableau_diviseurs_de_nombre1[boucle_diviseurs_nombre1] == tableau_diviseurs_de_nombre2[boucle_diviseurs_nombre2] && tableau_diviseurs_de_nombre1[boucle_diviseurs_nombre1] !=0 && tableau_diviseurs_de_nombre2[boucle_diviseurs_nombre2] !=0) { commun_diviseur = commun_diviseur * tableau_diviseurs_de_nombre1[boucle_diviseurs_nombre1]; } } } printf("Le PGCD de %d et de %d est %d\n\n\n",nombre1_entre,nombre2_entre,commun_diviseur); return 0; }
Partager