On 27 Mar 2002 at 16:47, Simone Saravalli wrote:
> Salve a tutta la lista, ho un problema che non riesco a risolvere: ho
> trovato l'algoritmo che riporto qui di seguito su un libro, l'ho modificato
> leggermente, ma al momento dell'esecuzione mi dà un problema:
> sostituisce il valore più grande che io immetto con un valore arbitrario
> (spesso il numero di elementi che specifico nel #define). Non riesco a
> capire dove sia l'errore, anche perchè si tratta solo di una rivisitazione
> dell'algoritmo Bubblesort che con le stesse modifiche funziona
> perfettamente.
> Mi affido a voi e grazie
>
> Simone
>
> PS spero che sia scritto bene, perchè non programmo da molti mesi :)
> #include <stdio.h>
>
> #define MAX 5
>
OKKIO non lo ho compilato.... ne eseguito!!!
void bubble_opt (int array[], int n, int inizio, int fine) {
int count, limit, last, temp;
limit=fine;
while (limit>inizio) {
last=inizio;
for (count=inizio; count<=limit; count++) {
if (array[count+1]<array[count]) {
// ^count arriva a limit, limit=fine, fine=MAX-1,
array[count+1]=array[MAX] ooops
temp=array[count+1];
array[count+1]=array[count];
array[count]=temp;
last=count;
}
}
limit=last;
}
}
void stampa (int array[], int n) {
int count;
for (count=0; count<n; count++)
printf ("%d\t", array[count]);
}
main() {
int count, n=MAX, inizio=0, fine=MAX-1, array[MAX];
for (count=0; count<MAX; count++) {
printf ("\nInserisci l'elemento numero %d: ", count+1);
scanf ("%d", &array[count]);
}
bubble_opt (array, n, inizio, fine);
// ^passa una ref.
stampa (array, n);
return 0;
}
--
Salve
Ivan Sergio Borgonovo
http://www.webthatworks.it/
uniq life || sleep 24h
|