[C] Scrivere programma in C usando i cicli
Potreste darmi una mano con questo programma?
Scrivere un programma in C che legge N numeri interi ed un numero intero k e stampa l'elemento degli N numeri letti più vicini a k.
Per esempio N=4 k=3 Numeri letti: 4, 1, 10, 5 Stampa 4
Io avrei cominciato ad impostarlo così:
#include
#define N 4
main ()
{
int k;
printf ("Dammi il valore k \n");
scanf ("%d", &k);
e poi non so come continuare!
Scrivere un programma in C che legge N numeri interi ed un numero intero k e stampa l'elemento degli N numeri letti più vicini a k.
Per esempio N=4 k=3 Numeri letti: 4, 1, 10, 5 Stampa 4
Io avrei cominciato ad impostarlo così:
#include
#define N 4
main ()
{
int k;
printf ("Dammi il valore k \n");
scanf ("%d", &k);
e poi non so come continuare!
Risposte
Dimentica per un attimo calcolatori, C, e l'informatica !
Immagina di essere tu a fare la parte del calcolatore e davanti hai l'utente che ti dice i numeri.
Come fai a risolvere l'esercizio ? Scrivi quello che fai nel modo piu' dettagliato possibile.
Questa è la base, poi solo quando hai chiaro i passi elementari, apri l'editor di C.
Immagina di essere tu a fare la parte del calcolatore e davanti hai l'utente che ti dice i numeri.
Come fai a risolvere l'esercizio ? Scrivi quello che fai nel modo piu' dettagliato possibile.
Questa è la base, poi solo quando hai chiaro i passi elementari, apri l'editor di C.
Al di la del problema, sai quali sono i cicli nel C e cosa fanno?
So cosa sono i cicli e come utilizzarli, il problema è che non riesco a trovare l'algoritmo!
Non capisco come posso definire quale numero sia più vicino al numero dato!
Non capisco come posso definire quale numero sia più vicino al numero dato!
Potresti fare la sottrazione e considerarne il valore assoluto. Lo fai per tutti i numeri e ne prendi il minimo!
Dato che li hai capiti, perché non hai scritto il codice per leggere tutti gli N numeri? Non hai inserito neanche la variabile array che li dovrebbe contenere. Insomma comincia a scrivere quel codice e ad aggiungere l'array e la variabile che conterrà il risultato. Dopo di che Cronovirus ti ha già detto come fare la seconda parte.
Non ho inserito la variabile perché non sapevo in che senso mi sarebbe servita! Ora provo con la differenza! Grazie mille!
Ok, comunque se k fosse inserito prima degli elementi sarebbe bastato un solo ciclo e nessun array. Essendo però inserito dopo, devi prima caricare tutti gli elementi in un array e poi cercare il più vicino. Comunque non dimenticarti il valore assoluto (o il quadrato se non ti preoccupa l'eventuale overflow).