Programme qui ne fonctionne pas
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é:
Code:
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 |
Voici ma traduction en C:
Code:
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);
}
} |
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 ...
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
Re: Programme qui ne fonctionne pas
Citation:
Envoyé par jipé95
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.
Boucle infinie : Il y a un ; en trop après un while...
Il des bizarreries :
n'a aucun sens...
Il y a un & dans un printf() avec "%d"...
Je crois qu'il est temps de reilre sérieusement ton cours de C. Trop d'erreurs basiques...