ugorix Inviato 2 Giugno 2014 Segnala Condividi Inviato 2 Giugno 2014 Ragazzi salve, sono uno studente alle prime armi con il linguaggio c++, il mio problema è questo, ovvero la traccia mi dice di raccogliere un certo numero di dati (che devono avere valore che va da 10 a 100, cioè non devono essere più piccoli di 10 e non devono essere più grandi di 100), ora io ho iniziato così: #include <iostream> #include <cstdlib> #include <fstream> using namespace std; void riempimento (int campioni [100]); int main(){ int campioni [100]; riempimento (campioni); } void riempimento (int campioni [100]){ int cont=0; int val; cout<<"Inserisci il numero di dati raccolti ogg (MAX 100): "<<endl; cin>>val; if(val>100) cout<<"Troppi valori... RIPROVA"<<endl; else { for (int i=0;i<val;i++){ cont++; cout<<"Inserisci il dato num: "<<cont<<" "; cin>>i; } } } ma il problema è che quando compila nè si ferma ai valori fissati e nè accetta i numeri a due cifre, ovvero appena digito un numero a due cifre, il programma si chiude.Potreste aiutarmi a capire il perchè? Grazie Link al commento Condividi su altri siti Altre opzioni di condivisione...
rudyvic Inviato 2 Giugno 2014 Segnala Condividi Inviato 2 Giugno 2014 Sbagli a fare, nella quartultima riga circa, cin>>i. Hai fatto un po' di confusione mettendo sia un contatore, sia i (usato come contatore). O fai: int i; for(cont=0;cont<val;cont++) {cout<<"inserisci..."; cin>>i;} oppure nella cout stampi i, cont non lo incrementi dentro al for e fai cin>>cont; Forse mi sono spiegato un po' male... comunque se hai domande chiedi iMac 27" ------ Macbook Air 13" ------ iPhone 3GS Black 16GB ------ iPhone 5 Black 32GB ------ 2 iPod Shuffle 1GB Link al commento Condividi su altri siti Altre opzioni di condivisione...
ugorix Inviato 3 Giugno 2014 Autore Segnala Condividi Inviato 3 Giugno 2014 io cont lo uso per far capire a che numero di dato stanno, eh se puoi modificarmi il codice, cosi capisco meglio Grazie Link al commento Condividi su altri siti Altre opzioni di condivisione...
rudyvic Inviato 3 Giugno 2014 Segnala Condividi Inviato 3 Giugno 2014 In pratica l'errore che fai è in questa riga: void riempimento (int campioni [100]){ int cont=0; int val; cout<<"Inserisci il numero di dati raccolti ogg (MAX 100): "<<endl; cin>>val; if(val>100) cout<<"Troppi valori... RIPROVA"<<endl; else { for (int i=0;i<val;i++){ cont++; cout<<"Inserisci il dato num: "<<cont<<" "; ----> cin>>i; <---- } } } Perché se guardi il ciclo for, la variabile i la usi come condizione per poter uscire dal ciclo.Il problema nasce quando assegni ad i quello che scrivi da tastiera. I non incrementerà nel modo corretto, ma sarà sempre al valore che inserisci incrementato di 1, quindi non ha nessun senso il ciclo così. Puoi risolvere in infiniti modi, una soluzione può essere: #include <iostream> #include <cstdlib> #include <fstream> using namespace std; void riempimento (int campioni [100]); int main(){ int campioni [100]; riempimento (campioni); } void riempimento (int campioni [100]){ int val; cout << "Inserisci il numero di dati raccolti ogg (MAX 100): " << endl; cin >> val; if(val > 100) cout << "Troppi valori... RIPROVA" << endl; else { int num; for (int i=0; i<val; i++){ cout << "Inserisci il dato num: " << i+1 << " "; cin >> num; campioni[i] = num; } } } iMac 27" ------ Macbook Air 13" ------ iPhone 3GS Black 16GB ------ iPhone 5 Black 32GB ------ 2 iPod Shuffle 1GB Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.