[C] Ricerca Lineare
Dunque, non me la cavo tanto con il C quindi perdonatemi se vi presento dei programmi fatti altamente male...
Ho fatto questo programma che in pratica chiede 8 numeri da tastiera, li mette in ordine, e poi ti chiede un ulteriore numero da tastiera da ricercare all'interno dell'array ordinato tramite l'algoritmo di ricerca lineare. Infine chiede di stampare a schermo se il numero è stato trovato o meno, ed è qui che mi trovo in difficoltà... io sarei anche riuscito a farlo ma il codice non è granché presentabile, si vede da lontano che è fatto da uno che non se ne intende.
(solo l'ultima parte)
printf("\n Inserire un numero da ricercare all'interno dell'array ordinato:\n");
scanf("%d",& x); // x= numero da cercare
for(i=0;i<8;i++)
{
if (a==x)
{
trovato=1;
}
if(trovato==1)
break;
}
if(trovato==1)
{
printf("E' stato trovato");}
else
{
printf("NON e' stato trovato");
}
Questo come dicevo funziona, ma è bruttissimo...
Su internet invece ho trovato questo:
for (i = 0; i < 8; i++) {
if (A == x) {
return true;
}
}
return false;
ma non ho mai capito come funzionano i return e quindi non so come fare a stampare su schermo "è stato trovato" o "non è stao trovato"
Vi ringrzio sperando che qualcuno mi sappia aiutare
Ho fatto questo programma che in pratica chiede 8 numeri da tastiera, li mette in ordine, e poi ti chiede un ulteriore numero da tastiera da ricercare all'interno dell'array ordinato tramite l'algoritmo di ricerca lineare. Infine chiede di stampare a schermo se il numero è stato trovato o meno, ed è qui che mi trovo in difficoltà... io sarei anche riuscito a farlo ma il codice non è granché presentabile, si vede da lontano che è fatto da uno che non se ne intende.
(solo l'ultima parte)
printf("\n Inserire un numero da ricercare all'interno dell'array ordinato:\n");
scanf("%d",& x); // x= numero da cercare
for(i=0;i<8;i++)
{
if (a==x)
{
trovato=1;
}
if(trovato==1)
break;
}
if(trovato==1)
{
printf("E' stato trovato");}
else
{
printf("NON e' stato trovato");
}
Questo come dicevo funziona, ma è bruttissimo...
Su internet invece ho trovato questo:
for (i = 0; i < 8; i++) {
if (A == x) {
return true;
}
}
return false;
ma non ho mai capito come funzionano i return e quindi non so come fare a stampare su schermo "è stato trovato" o "non è stao trovato"
Vi ringrzio sperando che qualcuno mi sappia aiutare

Risposte
Ciao,
La consegna dell'esercizio è "ordinare l'array" e "utilizzare ricerca lineare"?
se lo scopo dell'esercizio è utilizzare la ricerca lineare allora l'ordinamento dell'array sarebbe inutile. Perchè per funzionare la ricerca non ha bisogno che l'array sia ordinato.
"Sant":
Dunque, non me la cavo tanto con il C quindi perdonatemi se vi presento dei programmi fatti altamente male...
Ho fatto questo programma che in pratica chiede 8 numeri da tastiera, li mette in ordine, e poi ti chiede un ulteriore numero da tastiera da ricercare all'interno dell'array ordinato tramite l'algoritmo di ricerca lineare. Infine chiede di stampare a schermo se il numero è stato trovato o meno, ed è qui che mi trovo in difficoltà...
La consegna dell'esercizio è "ordinare l'array" e "utilizzare ricerca lineare"?
se lo scopo dell'esercizio è utilizzare la ricerca lineare allora l'ordinamento dell'array sarebbe inutile. Perchè per funzionare la ricerca non ha bisogno che l'array sia ordinato.
l'esercizio dice di ordinare i numeri e poi fare la ricerca lineare di un numero da tastiera all'interno dell'array ordinato, comunque non è questo il punto, il mio problema sta nel fatto che non so come scrivere a schermo se è stao trovato o meno nel caso dei return, oppure rendere più presentabile quello fatto da me

Ciao!
L' istruzione return si usa all' interno di una funzione.
Con essa, si provoca l' arresto della funzione, e si assegna il valore di ritorno.
Ecco un esempio:
Nel programma, ci sara:
L' istruzione return si usa all' interno di una funzione.
Con essa, si provoca l' arresto della funzione, e si assegna il valore di ritorno.
Ecco un esempio:
int test (int *A, int fine, int x) // passo il vettore, la sua dimensione, e il numero da cercare come argomento { for (i = 0; i < fine; i++) { if (A[i] == x) return 1 // alla prima occorrenza, la funzione termina, e restituisce 1 ; } return 0; nessuna occorrenza è stata trovata }
Nel programma, ci sara:
... printf("\n Inserire un numero da ricercare all'interno dell'array ordinato:\n"); scanf("%d",& x); // x= numero da cercare if (test(a, 8, x) == 1) { printf("E' stato trovato"); } else { printf("NON e' stato trovato"); } ...
si, penso che così possa andare... ti ringrazio
