PDA

View Full Version : Prime armi Loop


zergling
15-08-2007, 23:15
Ciao a tutti,
Apro questo post perche avrei esigenza di interrompere il programma quando l'utente per sbaglio iserisce una lettera oppure una lettare e/o un numero allo stesso momento.
Esempio

Insert the cost of the pencil:

invece di mettere 5 metto 5saf

Questo e' il mio codice.

#include <iostream>

using namespace std;

int main(int argc, char** argv)
{
const int pencils = 200;
double pencils_cost;
double tot_pencils_cost;
int year;
double rate_inflation;

cout << "Programmer: ZerglinG" << endl;

while ( pencils == 200 )
{
cout << endl << "Insert the cost of the pencil: $";
cin >> pencils_cost;

cout << endl << "Insert the current year: ";
cin >> year;

cout << endl << "Insert the inflation rate: ";
cin >> rate_inflation;
rate_inflation = rate_inflation / 100;


tot_pencils_cost = pencils_cost * pencils * rate_inflation;

cout << endl << "The estimate cost of 200 pencils is: $" << tot_pencils_cost;
cout << endl;
}

return 0;

}

Ciao e grazie in anticipo

Fenomeno85
16-08-2007, 10:43
se vuoi che l'utente può solo inserire numeri, la strada che conosco del c e penso l'unica dato che non conosco funzioni standard che lo fanno è questa:

1) prendi il numero in una stringa
2) controlli che la stringa faccia parte del set di caratteri
3) ricomponi il numero in un valore intero

Questa è una soluzione .. sicuramente ce ne sarà una migliore :D


~§~ Sempre E Solo Lei ~§~

qwerty86
16-08-2007, 10:52
#include <iostream>

using namespace std;

int main(int argc, char** argv)
{
const int pencils = 200;
double pencils_cost;
double tot_pencils_cost;
int year;
double rate_inflation;

cout << "Programmer: ZerglinG" << endl;

while ( pencils == 200 )
{
cout << endl << "Insert the cost of the pencil: $";
cin >> pencils_cost;

cout << endl << "Insert the current year: ";
cin >> year;

cout << endl << "Insert the inflation rate: ";
cin >> rate_inflation;
rate_inflation = rate_inflation / 100;


tot_pencils_cost = pencils_cost * pencils * rate_inflation;

cout << endl << "The estimate cost of 200 pencils is: $" << tot_pencils_cost;
cout << endl;
}

return 0;

}

Ciao e grazie in anticipo

dovrebbe andare così :

do{
cout << endl << "Insert the cost of the pencil: $";
cin >> pencils_cost;
}while(pencils_cost > 0);

Fenomeno85
16-08-2007, 11:43
dovrebbe andare così :

do{
cout << endl << "Insert the cost of the pencil: $";
cin >> pencils_cost;
}while(pencils_cost > 0);



ehm .. non testo perchè non ho tempo ma se ci metti solo a quel while lo vedi andare a donne di facili costumi

~§~ Sempre E Solo Lei ~§~

71104
16-08-2007, 12:05
ehm .. non testo perchè non ho tempo ma se ci metti solo a quel while lo vedi andare a donne di facili costumi

~§~ Sempre E Solo Lei ~§~ più che altro è da correggere: presumo che abbia erroneamente messo la condizione del while come se fosse un "until". ah, i pascaliani :D

qwerty86
16-08-2007, 12:21
più che altro è da correggere: presumo che abbia erroneamente messo la condizione del while come se fosse un "until". ah, i pascaliani :D

do{
}(!(condizion))

ihihih ragazzi è il 16 agosto :D

Fenomeno85
16-08-2007, 13:36
più che altro è da correggere: presumo che abbia erroneamente messo la condizione del while come se fosse un "until". ah, i pascaliani :D

si ma non ha levato il problema di crash nel caso non mette numeri

~§~ Sempre E Solo Lei ~§~