Aide pour faire tableau affichant les nombres premiers

Fermé
lele150 Messages postés 1 Date d'inscription mercredi 29 mars 2017 Statut Membre Dernière intervention 29 mars 2017 - Modifié le 29 mars 2017 à 09:33
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 29 mars 2017 à 15:03
Bonjour , j'ai un tp a rendre ou il faut faire un tableau afiichant les N nombres premiers

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.

1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié le 29 mars 2017 à 15:27
Salut,

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
0