[C] VETTORI

Bush1
Ciao a tutti!
sto provando a fare questo esercizio da almeno un'ora e non riesco a saltarci fuori.
Scrivere un programma che letti gli elementi di un vettore v1 e un numero k, determini l'elemento v1 più prossimo a k.

Risposte
apatriarca
Mostra il codice e vediamo che cosa stai sbagliando.

vict85
Sapresti fare un programma che trova il minimo di un vettore? È molto simile, solo che devi trovare il minimo della distanza da un elemento. Insomma cambia poco più della condizione (devi anche memorizzare la distanza minima trovata finora oltre che l'elemento).

Bush1
Questo.. ma so che è sbagliato.. non riesco a capire come posso salvare il valore minore trovato fino a quel punto.. se devo trovare la differenza minore ci riesco, trovare il numero più piccolo ci riesco... ma è trovare la differenza minore e associarla al rispettivo numero che non riesco a fare... :'(


#include
#include

int main ()
{
int k, i, j,min, near;

int v1[6] = {1, 2, 55, 44, 5, 6};
k = 3;


for((i=1) & (j=2); (i <6) & (j<6); (i++) & (j++)){

if((abs(v1 - k)) < (abs(v1[j] - k)))
near = v1;
else
near = v1[j];

if(near < (abs(v1-k)))
min = near;

}


printf("Il numero piu vicino a %d e' %d\n",k, min);
}

int abs(int i)
{
if( i < 0)
return -i;
else
return i;
}

Bush1
Come si salva momentaneamente un valore in una variabile in un ciclo for per poterlo utilizzare più volte nel ciclo?
non so se mi son spiegata..

apatriarca
Memorizza in due valori diversi la distanza minore e il valore che ha questa distanza e alla fine del ciclo dovresti ottenere la risposta che cerchi.

Bush1
sarò cionca, ma non riesco a capire come fare...

apatriarca
Aggiorna near solo quando la distanza è minore..

Bush1
ok fatto.. ma mi rimane comunque il problema che trovo la distanza minore senza avere il valore di riferimento.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.