PDA

Visualizza la versione completa : [C++] Visualizzare tutti i numeri interi minori di quello dato, fino allo 0


Mr Sasquatch
01-04-2011, 19:05
Considerando che l'utente non metterà mai un numero negativo, deve fermarsi quando arriva allo 0, insomma che faccia un countdown
Perchè mai non funziona questo programmino del picchio? :confused: :dhò:




#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main ()
{
int b;
scanf("%d",&b);
for( ;b<0;b--)
printf("%d\n",b);
system("pause");
}

mistergks
01-04-2011, 19:38
beh...premettendo che non faccio c, ma c++...ma è quasi uguale...
ho provato a farlo anch'io... però in c++..
il for è sbagliato...

tu dici: finchè b è minore di zero... decrementa b.. e non ha senso..
il for deve dire: finche b è maggiore uguale a zero...decrementa b..

younes
01-04-2011, 21:13
ciao io ti lo fatto a modo mio se hai delle domande chiedi pure che ti spiego come l'ho fatto io :D

Younes.




#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{ int n;
cout<<"inserisci un numero"<<endl;
cin>>n;

do{
n--;
cout<<"il risultato e' :"<<n<<endl;
} while (n!=0);

system("PAUSE");
}

Mr Sasquatch
01-04-2011, 21:55
Originariamente inviato da mistergks
beh...premettendo che non faccio c, ma c++...ma è quasi uguale...
ho provato a farlo anch'io... però in c++..
il for è sbagliato...

tu dici: finchè b è minore di zero... decrementa b.. e non ha senso..
il for deve dire: finche b è maggiore uguale a zero...decrementa b..

Hai ragione... come ho fatto a non arrivarci da solo? :shy: :facepalm: mi sa che vado a letto :mem: lol

Mr Sasquatch
01-04-2011, 22:03
Originariamente inviato da younes
ciao io ti lo fatto a modo mio se hai delle domande chiedi pure che ti spiego come l'ho fatto io :D

Younes.




#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{ int n;
cout<<"inserisci un numero"<<endl;
cin>>n;

do{
n--;
cout<<"il risultato e' :"<<n<<endl;
} while (n!=0);

system("PAUSE");
}

Grazie, ho scoperto da poco che cin e cout sarebbero del C++, mentre printf e scanf sarebbero del C... e che il modo tuo ha un rischio più basso di fare errori. Il problema è che il mio prof. usa il primo metodo (sebbene dica di insegnarci C++). Ma vorrei aggiornarmi alla sintassi più recente ;)
Ma cosa sarebbe "using namespace std", che l'hai messo anche nell'altro post?

mistergks
01-04-2011, 23:50
lui ha usato un altro costrutto di iterazione( il do-while)...col for mi sembra piu' semplice e veloce!


#include <iostream>
using namespace std;

int main()
{
int a;
cout<<"inserire a"; cin>>a;
for(; a>=0; a--){
cout<<a<<endl;
}


system("pause");
return 0;
}


using namespace std è uno spazio dei nomi per identificare univocamente il nome delle classi..con quella "dicitura" si dice al compilatore che si sta usando lo spazio standard dei nomi.
In parole povere...ti permette di usare cin, cout, ecc...

mistergks
01-04-2011, 23:56
Originariamente inviato da younes
ciao io ti lo fatto a modo mio se hai delle domande chiedi pure che ti spiego come l'ho fatto io :D

Younes.




#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{ int n;
cout<<"inserisci un numero"<<endl;
cin>>n;

do{
n--;
cout<<"il risultato e' :"<<n<<endl;
} while (n!=0);

system("PAUSE");
}




Come mai hai incluso la libreria cstdlib!?

Alex'87
02-04-2011, 11:53
Originariamente inviato da mistergks
lui ha usato un altro costrutto di iterazione( il do-while)...col for mi sembra piu' semplice e veloce!
I cicli for e while pur essendo equivalenti (in C) hanno usi diversi:
for si usa quando si conosce il numero esatto di iterazioni
while si usa se il numero di iterazioni non è noto a priori
do-while si usa se il numero di iterazioni non è noto a priori ma almeno una deve essere fatta.

younes
02-04-2011, 14:00
Originariamente inviato da mistergks
Come mai hai incluso la libreria cstdlib!?

ciao la libreria cstdlib non centra niente in questo programmino solo che io prima stavo facendo un altra cosa e non lo cancellata.... poi ho usato il do while per non usare sempre il classico for cosi il nostro amico impara un'altra istruzione/metodo per fare la stessa cosa cosi se almeno deve fare qualcosa in futuro sa come funziona

Alex'87
02-04-2011, 14:29
Originariamente inviato da younes
ciao la libreria cstdlib non centra niente in questo programmino solo che io prima stavo facendo un altra cosa e non lo cancellata....cstdlib (o stdlib.h) serve per poter usare system(). E l'uso di system() dovrebbe essere dichiarato un crimine contro l'umanità XD (fai una ricerca sul forum, ne abbiamo parlato oltre la nausea ;) )

Loading