Come prima cosa un consiglio visto che sei nuovo del forum. Quando posti del codice usa il
tag code.
Leggendolo ho notato che c'è un bel po' di confusione nel tuo codice.
Prima di tutto non capisco bene perché c'è questa linea di codice senza un
for:
array[i]=abs(array[i]-(n_inserito));
la variabile
i assume il valore
A dopo che è uscita dal
for precedente. Questa cosa devi farla in un nuovo ciclo
for per salvarti le differenze in valore assoluto tra il numero inserito ed ogni numero random dell'array, inoltre tali differenze vanno in un nuovo array, non puoi sovrascrivere quello con i numeri random.
Quello che mi risalta all'occhio è che usi la variabile
min senza averla mai inizializzata.
In questo caso quando esegui questo pezzo di codice :
for(i=0;i<A;i++){
if(min>=array[i]){
min=array[i];
}
il comportamento è completamente indefinito, se ho capito bene questo dovrebbe darti il minimo valore nel vettore (immagino che cerchi il minimo tra le differenze).
Anche di quest'ultimo
for non capisco come possa essere utile ai tuoi scopi:
for(i=0;i<A;i++){
if(min==array[i]){
cnt++;
}
Il problema che devi affrontare è molto semplice, dopo esserti salvato le differenze in valore assouto (dato che cerchi quello che si avvicina di più), cerchi la differenza minima nel nuovo array delle differenze. Dopo fatto questo ti salvi in che posizione si trova la differenza minima e stampi il valore a quella posizione nell'array originario.