Alors déjà par pitié il y a une balise code et en plus elle est reconnaissable. Donc utilises la.
include <stdlib.h>
include <stdio.h>
define taille_max 1000
/*cette fonction permet de supprimer de tab tous les nombres divisibles par number. En commencant par 2, puis 3, etc.. */
int cpygood(int *tab[], int position, int number)
{
int position3=position;
int i=0; int copytab[taille_max]={0};
for(i=number;i<taille_max;i++)
{
if((i%number)!=0)
{
copytab[position3]=i;
position3++;
}
}
for(int j=0;j<taille_max;j++){
if( copytab[j]==0)
j=taille_max+1;
*tab[j]=copytab[j];}
return position3;
}
int main()
{
int position=0, position2=0;
int *tab[taille_max];
for(int i=2;i<taille_max;i++){
*tab[i]=i;
}
for(int k=0;k<taille_max;k++)
{
position2= cpygood(*tab, position, k);
position=position2;
}
for(int l=0;l<taille_max;l++)
printf("%d",*tab[l]);
return 0;
}
Ensuite j'ai plusieurs questions.
int *tab[taille_max];
Pourquoi un pointeur de tableau?
int tab[taille_max];
for (int i = 2; i < taille_max; i++)
tab[i] = i;
me semble plus approprié.
Là je peux pas tester mais il me semble que dans ton prototype tu demandes un pointeur de tableau, or tu lui envoies un pointeur, du coup il doit pas aimer (faudrait que tu cast, mais c'est dégueux, alors avec la correction du dessus c'est mieux).
int cpygood(int *tab[], int position, int number)
deviendrait :
int cpygood(int *tab, int position, int number)
et
position2= cpygood(*tab, position, k);
deviendrait
position2= cpygood(tab, position, k);
PS: je suis pas chez moi je peux pas encore tester le code, mais je pense que c'est une piste d'amélioration en tout cas.