Ciao e benvenuto nel forum ... Prima di tutto dovresti correggere l' inserimento dei 10 numeri da testare così:
codice:
for( counter=0; counter<NUM_SIZE; counter++ )
{
printf( "Digitare il valore numero %d", counter+1 );
scanf( "%lf", &num[ counter ] );
}
perchè nel loop da te scritto, inserisci ogni numero sempre nel primo elemento di num, mentre devi inserirli a partire dal primo elemento, e per ogni ciclo, inserirlo nell' elemento successivo fino ad arrivare all' ultimo (cioè nel primo ciclo devi inserire il numero nel primo elemento di num, nel secondo ciclo devi inserire il numero nel secondo elemento di num e così via fino al decimo). Come dovresti sapere per accedere agli elementi di un array, bisogna usare un indice che va da 0 al numero di elementi dell' array - 1. Ad esempio, per accedere agli elementi dell' array num, puoi usare come indice un numero che va da 0 a 9 (cioè num[0], num[1] . . . num[9]). Metti bene in testa che per accedere all' i -esimo elemento devi usare come indice i-1 (cioè se vuoi accedere al primo elemento devi usare come indice 1-1 = 0) ecco perchè counter viene definito a 0, e perchè la condizione del loop è counter<NUM_SIZE ...
Detto ciò rimane solo il problema di trovare il numero più vicino a quello memorizzato in b che può essere risolto con degli if/else dentro il loop.
codice:
for( counter=0; counter<NUM_SIZE; counter++ )
{
printf( "Digitare il valore numero %d", counter+1 );
scanf( "%lf", &num[ counter ] );
// Se è l' elemento corrente è il primo elemento di num
if( counter == 0 )
{
// setta come numero più vicino l' elemento corrente di num, e come
// differenza minima il numero assoluto della differenza tra l' elemento corrente di num e b
num_vic = num[ counter ];
diff_min = fabs( num[counter] - b );
}
else
{
// Se è l' elemento corrente è il primo elemento di num e se la differenza
// tra l elemento corrente e b è minore della differenza minima corrente
if( fabs( num[counter] - b ) < diff_min )
{
// setta come numero più vicino l' elemento corrente di num, e come differenza
// minima il numero assoluto della differenza tra l' elemento corrente di num e b
num_vic = num[ counter ];
diff_min = fabs( num[counter] - b );
}
}
}
Se hai problemi a capire il codice chiedi pure ...
P.S: Se stai imparando da autodidatta ti consiglio VIVAMENTE (se non l' hai già fatto) di prelevare un buon testo sul C ...