Pagina 1 di 1
Un problemino di programmazione...
Inviato: venerdì 23 ottobre 2009, 0:57
da SaMMoX
A seguito di un buggettino subdolo che mi ha fatto perdere un pochino di tempo, propongo 'na specie di giochino... Considerate il seguente programma
Codice: Seleziona tutto
#include <stdio.h>
int main(void)
{
for(i = 10; i >= 0; --i)
printf("Ubuntu\n");
return 0;
}
Come si può vedere questo è un programma in C dove, però, manca la dichiarazione di i, che va prima del for. Ecco, io vi dico... Dichiarate i (solo questo!) in modo che il programma precedente stampi infinite volte la scritta Ubuntu (i.e. non esca mai dal ciclo for).
Re: Un problemino di programmazione...
Inviato: domenica 25 ottobre 2009, 13:01
da SaMMoX
Nessuno nessuno?

Re: Un problemino di programmazione...
Inviato: domenica 25 ottobre 2009, 13:42
da marcoscarpetta
COME stringa forse?
Re: Un problemino di programmazione...
Inviato: domenica 25 ottobre 2009, 13:51
da kiroken_
non si può perchè comunque la dichiari dentro al for gli assegni valore 10. E dubito che con float o double possa sbagliare sommando e sottraendo interi.
Re: Un problemino di programmazione...
Inviato: domenica 25 ottobre 2009, 14:46
da SaMMoX
E invece vi dico che si può! E non come stringa, vi do un indizio, deve essere dichiarata come variabile intera.
À vous...
Re: Un problemino di programmazione...
Inviato: domenica 25 ottobre 2009, 15:04
da DAKS
i=0 forse?
Re: Un problemino di programmazione...
Inviato: domenica 25 ottobre 2009, 15:05
da SaMMoX
Quello che si deve fare è dichiarare il tipo di i, non inizializzarla.

Di fatto, come è stato detto, viene comunque reimpostata all'inizio del for, per cui...
Re: Un problemino di programmazione...
Inviato: domenica 25 ottobre 2009, 16:02
da kiroken_
ah già troppo java soluzione capita comunque non è un bug
Re: Un problemino di programmazione...
Inviato: domenica 25 ottobre 2009, 16:15
da SaMMoX
No no il bug era riferito al programmino che avevo fatto io.

Mi spiego... Stavo scandendo un array di 11 elementi al contrario, se avessi dichiarato i come int e avessi fatto
Codice: Seleziona tutto
for(i = 10; i >= 0; --i)
Qualche operazione su array[i]
non ci sarebbero stati problemi. Invece volendo fare il figo ho dichiarato i in altro modo, così il programma mi schiantava con un bel segmentation fault.

E prima di capire dove stava il bug (nel mio programma s'intende!) un po' mi ci è voluto... Fortuna che esiste gdb...