Bonjour à tous,
Je prends des cours par correspondance de programmeur sur micro.
J'ai un devoir à rendre, je sais ce que vous allez dire, mais je ne demande pas que l'on me fasse le devoir, simplement m'expliquer pourquoi (si c'est possible) mon prog ne donne aucun résultat.
Voici l'ennoncé:
Voici ma traduction en C:
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 les variables: entier n entier k début écrire"Décomposition d'un nombre en facteur premier" écrire"Introduire un nombre>0" Lire n tant que n>0 faire début écrire "facteurs premiers" tant n modulo 2=0 faire début écrire"2" .n<--n/2 fin k<--3 tant que n=1 si (modulok=0) alors k<--k+2 sinon début écrire k n<--n/k fin écrire"Introduire un nombre>0" Lire n fin fin
Je nobtient aucun résultat final, a priori pas d'erreur lors de la compilation (j'utilise Dev-C++ 4.9.9.2), pas de warning, le programme s'execute je rentre bien un nombre superieur à 0, et rien ne se passe, juste le prompt qui clignote ...
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 #include<stdio.h> #include<math.h> int n,k; main() /*Decomposition d'un nombre en facteur premier*/ { printf("\nIntroduire un nombre superieur a 0:\t"); /*le tabulateur est la pour la lisibilité dans la fenetre DOS*/ scanf("%d", &n); while(n>0); { /*facteur premier*/ while(n%2==0); { printf("2"); n=n/2; } k=3; while(n==1); if(n%k==0) k=k+2; else(""); { printf("%d", &k); n=n/k; } printf("Introduire un nombre>0:\n"); scanf("%d", &n); } }
Quelle erreur ai je fais?
Est ce que c'est le choix des boucles qui ne sont pas bonnes?
Pouvez vous m'aider a comprendre?
Un grand merci a tous
Partager