PDA

Visualizza la versione completa : [C++] Push Back & Do While


Slokez
05-07-2017, 12:55
Ciao a tutti!
Questa è la traccia dell'esercizio: Leggete un insieme di int in un vector. Stampate la somma di ciascuna coppia di numeri adiacenti.

Il problema si presenta durante il pushback.
Vorrei che mi facesse mettere un elemento nel vettore fino a quando non viene registrato il valore 0.
Questo è ciò che ho scritto io, senza alcun risultato:

#include <iostream>
using std::cout;
using std::cin;
using std::endl;


#include <vector>
using std::vector;


int main(){
vector<int> v;
int x;

do
{ cin>>x;
v.push_back(x);
} while (x==0);

for(int i=0; i<v.size()-1; i+=2)
cout << v[i]+v[i+1] << endl;

}
Dove sbaglio?
Grazie in anticipo.

Scara95
06-07-2017, 07:55
dovrebbe esserti chiaro semplicemente traducendo

ripeti
{
...
} finché (x==0);

Slokez
06-07-2017, 13:52
dovrebbe esserti chiaro semplicemente traducendo

ripeti
{
...
} finché (x==0);

Ripeti {
prendi valore di x
aggiungilo alla fine del vettore
}
se x prende il valore di 0 termina il ciclo

No? :/

LeleFT
06-07-2017, 14:12
No... while = mentre. Rimane dentro al ciclo mentre x == 0. Ovvero rimane dentro al ciclo fintanto che x == 0... quando x non è più uguale a 0, esce dal ciclo.



while( x == 0 ) {
...
}



E' quasi la stessa cosa... con un ciclo while, la condizione di permanenza è testata prima di entrare, con un do-while la condizione di permanenza (sempre di permanenza si tratta) è testata dopo ogni iterazione (quindi fa almeno un'iterazione). Ma sempre di un while si tratta.


Ciao. :ciauz:

Slokez
06-07-2017, 14:33
No... while = mentre. Rimane dentro al ciclo mentre x == 0. Ovvero rimane dentro al ciclo fintanto che x == 0... quando x non è più uguale a 0, esce dal ciclo.



while( x == 0 ) {
...
}



E' quasi la stessa cosa... con un ciclo while, la condizione di permanenza è testata prima di entrare, con un do-while la condizione di permanenza (sempre di permanenza si tratta) è testata dopo ogni iterazione (quindi fa almeno un'iterazione). Ma sempre di un while si tratta.


Ciao. :ciauz:

che errore stupido!
Grazie mille, ho capito tutto :) gentilissimo!

Loading