se fossi in te dopo aver trovato il numero grande lo eliminerei dal vettore spostandolo in ultima posizione e spostando tutti gli altri membri di conseguenza...
per fare ciò ti consiglio un bubble sort che è particolarmente semplice da capire...
praticamente tu trovi l'indice del numero maggiore e poi da quell'indice fino alla fine dell'array continui a scambiare gli elementi dell'array con questo ciclo:
int bubble_sort(int *vect,int max,int index){
int i, temp;
for(i=index;i
temp =vect[i];
vect[i]= vect[i+1];
vect[i+1]= temp;
}
}
per usare questo sort devi modificare in questo modo la tua funzione per trovare il massimo:
int FindMax(int *vect,int dim){
int max,i,segnaPosto;
for(max=i=0;i<10;i++){
if(max<= vect[i]){
max=vect[i];
segnaPosto=i;
}
}
bubble_sort(vect,dim,segnaPosto);
return max;
}
e ovviamente alla fine per stampare l'array devi decrementare il suo numero massimo di elementi, ecco il main.
int main (){
int i , vect[10];
for(i=0;i<10;i++)
scanf(" %d",&vect[i]);
for(i=0;i<10;i++)
printf(" %d",vect[i]);
printf("\nil numero + grande è: %d\n",FindMax(vect,10));
for(i=0;i<9;i++)
printf(" %d",vect[i]);
}
se invece vuoi veramente eliminare quell'elemento hai bisogno di nozioni di puntatori abbastanza avanzate...
in primis devi saper usare le malloc e saper indicizzare un puntatore....
io ti posso postare il codice con le malloc se vuoi:
# include
# include
# include
//variabile globale elem descrive quanti cosi stanno in un array
int ELEM = 10;
int FindMax(int *vect,int dim);int bubble_sort(int *vect,int max,int index);
int main (){
int i , *vect;
// invece di creare un array creo un puntatore a int chiamato vect:
// un puntatore può essere indicizzato come un array se legato ad un area di memoria abbastanza grande
//poi usa la funzione malloc per linkarlo allo spazio di memoria abbastanza grande...
vect = (int *) malloc(sizeof(int) *ELEM );
for(i=0;i
scanf(" %d",&vect[i]);
for(i=0;i
printf(" %d",vect[i]);
printf("\nil numero + grande è: %d\n",FindMax(vect,10));
for(i=0;i
printf(" %d",vect[i]);
getch();
}
int FindMax(int *vect,int dim){
int max,i,segnaPosto;
for(max=i=0;i<10;i++){
if(max<= vect[i]){
max=vect[i];
segnaPosto=i;
}
}
bubble_sort(vect,dim,segnaPosto);
return max;
}
int bubble_sort(int *vect,int max,int index){
int i, temp;
for(i=index;i
temp =vect[i];
vect[i]= vect[i+1];
vect[i+1]= temp;
}
// la funzione realloc redefinisce la grandezza dello spazio di memoria di vect
// in questo modo elimino l'ultimo elemento dell array
ELEM--;
realloc(vect,sizeof(int) *ELEM );
}