Aide pour faire tableau affichant les nombres premiers
lele150
Messages postés
1
Statut
Membre
-
[Dal] Messages postés 6373 Statut Contributeur -
[Dal] Messages postés 6373 Statut Contributeur -
Bonjour , j'ai un tp a rendre ou il faut faire un tableau afiichant les N nombres premiers
voici mon code :
voici mon code :
{
int n ,i,k;
printf("Entrez la taille du tableau");
scanf("%d",n);
int tableau[n];
printf("\nRemplissage du tableau \n");
for (i=0; i<n ;i++)
{ tableau[i]=0 ;}
for (i=2;i<n;i++)
{ for(k=i+1;k<n;k++)
{
if ((tableau[k]==0 )&& ((k%i)==0)){
tableau[k]=1;
}
}
}
for (i=0;i<n;i++)
if (tableau[i]==0) {
printf("%d est un nombre premier\n",i);
}
return 0;
}
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Aide pour faire tableau affichant les nombres premiers
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Comment faire un tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
1 réponse
Salut,
L'appel
La déclaration
0 et 1 ne sont pas premiers en principe : https://fr.wikipedia.org/wiki/Nombre_premier
il te faudrait traiter ces cas.
Sinon, là ta question est bizarrement formulée : "tableau afiichant les N nombres premiers" sic.
On ne sais pas si tu dois :
- afficher N nombres premiers et à partir d'où (ce que ne fait pas ton code de toutes façons)
- ou si, pour la suite d'entiers naturels jusqu'à N, tu dois déterminer les nombres premiers compris dans cet intervalle (ce que fait ton code, jusqu'à N-1 seulement, et avec les erreurs précitées)
Enfin, tu n'affiches pas un "tableau" au sens visuel du terme (c'est à dire un truc répartissant l'affichage en lignes et colonnes avec des séparateurs). Je ne sais pas si c'est demandé, tu parles de "faire un tableau afiichant" ... ce qui n'a pas trop de sens sinon (car un tableau C n'affiche rien, il stocke quelque chose en mémoire, c'est tout).
Dal
L'appel
scanf("%d",n); est erroné, par tu dois passer un pointeur, donc scanf("%d",&n);.
La déclaration
int tableau[n];est correcte en C99, vois si cela t'es permis. Sinon, il faudra passer par malloc.
0 et 1 ne sont pas premiers en principe : https://fr.wikipedia.org/wiki/Nombre_premier
il te faudrait traiter ces cas.
Sinon, là ta question est bizarrement formulée : "tableau afiichant les N nombres premiers" sic.
On ne sais pas si tu dois :
- afficher N nombres premiers et à partir d'où (ce que ne fait pas ton code de toutes façons)
- ou si, pour la suite d'entiers naturels jusqu'à N, tu dois déterminer les nombres premiers compris dans cet intervalle (ce que fait ton code, jusqu'à N-1 seulement, et avec les erreurs précitées)
Enfin, tu n'affiches pas un "tableau" au sens visuel du terme (c'est à dire un truc répartissant l'affichage en lignes et colonnes avec des séparateurs). Je ne sais pas si c'est demandé, tu parles de "faire un tableau afiichant" ... ce qui n'a pas trop de sens sinon (car un tableau C n'affiche rien, il stocke quelque chose en mémoire, c'est tout).
Dal