codice:int main() { int a[SIZE]={0,1,2,3,4}; int i; int key; ..... ..... ..... }mmh..dunque ho seguito il consiglio tuo...ma il prog nn va lo stesso...cioè mi esegue sempre la ric lineare ma forse ho capito xkè....dunque in questo codice ho aggiunto anche due printf che stampano il valore del flag...SIZE è 5codice:int isOrdered(int vet[],int len) { int flag, i; flag=1; for(i=0; i<SIZE; i++) { printf("Valore di flag: %d\n", flag); if (vet[i]>vet[i+1]) { flag=0; } } printf("Valore di flag: %d\n", flag); return flag; }
l output del programma è il seguente:
c'è sempre quello 0 finale che mi altera il valore del flag quindi fa sempre la ric lineare..ma come posso ovviare?codice:bash-3.00# ./tot Immetti un numero tra 0 e 4: 3 Valore di flag: 1 Valore di flag: 1 Valore di flag: 1 Valore di flag: 1 Valore di flag: 1 Valore di flag: 0 Ricerca lineare Valore trovato nell'elemento 3 bash-3.00#
ho provato a modificare la condizione if (vet[i]>vet[i+1])
ma senza successo![]()

Rispondi quotando