J'ai créé un programme pour supprimer les doublons dans un tableau, mais la condition if du programme reste toujours vraie. J'ai compris quel était le problème, j'ai changé arr [i] en arr [count] et alloué de la mémoire via malloc, mais le programme imprime le tableau tel qu'il est sans supprimer les doublons.Suppression de doublons dans le tableau
# include<stdio.h>
# include<stdlib.h>
int count=0;
void Delete(int *arr);
void Search(int *arr);
int main()
{
int i;
int *arr;
arr=(int*)malloc(sizeof(int));
clrscr();
printf("Enter array and press -1 to stop:\n");/*stops when -1 occurs*/
for(count=0; ;count++)/*count is the count of the numbers*/
{
scanf("%d",&arr[count]);
realloc(arr,sizeof((int)+count));
fflush(stdin);
if(*(arr+count)==-1)/*This condition is never true.*/
break;
}
Search(arr);
for(i=0;i<count;i++)
{
printf("%d\t",arr[i]);
}
getch();
return 0;
}
Search(arr);
for(i=0;i<count;i++)
{
printf("%d",&arr[i]);
}
getch();
return 0;
}
Qu'est-ce la signification de ceci: si (* (arr + compte) == - 1) - pourquoi ne pas utiliser arr [count] == -1? Votre code est jonché de ceci ... –
changement scanf ("% d", & arr [i]); à scanf ("% d", & arr [count]); edit: btw c'est les devoirs, n'est-ce pas? – George
Garder la longueur du tableau dans une variable globale, 'count', est iffy .. – Arun