[C] VETTORI
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.
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
Mostra il codice e vediamo che cosa stai sbagliando.
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).
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;
}
#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;
}
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..
non so se mi son spiegata..
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.
sarò cionca, ma non riesco a capire come fare...
Aggiorna near solo quando la distanza è minore..
ok fatto.. ma mi rimane comunque il problema che trovo la distanza minore senza avere il valore di riferimento.