Witam, od razu przejdę do rzeczy. Napisałem poniższy program:
#include
#include
#include
#include
using namespace std;
int main()
{
int x = 0, y = 0;
string podajNazwisko;
vector nazwiska;
for(x;x<3;x++){
cout << "Podaj nazwisko " << x << ": ";
cin >> podajNazwisko;
nazwiska.push_back(podajNazwisko);
sort(nazwiska.begin(), nazwiska.end());
}
cout << endl;
for(y;y<3;y++){
cout << "NAZWISKO " << y << ": " << nazwiska[y] << endl;
}
return 0;
}
Po zbudowaniu i uruchomieniu wszystko działa OK ale chciałem aby cyferka przy “Podaj nazwisko ‘n’:” oraz “NAZWISKO ‘n’” zaczynała się od jedynki, czyli zmieniłem w zmiennych x,y wartość na 1 oraz w obu pętlach ustawiłem x<4 tak żeby program prosił o podanie identycznej liczby nazwisk jak to miało miejsce wcześniej. Pierwsza pętla działa w porządku prosi o podanie 3 nazwisk ale druga zaczyna sczytywanie z wektora dopiero od wartości o jeden większej. Nie mam pojęcia dlaczego tak się dzieje skoro w pierwszym przykładzie (ten którego kod podałem) wszystko działa dobrze. P.S. Wiem że mogłem napisać
cout << "NAZWISKO " << y + 1;
ale chce dojść do tego co robię źle, testowałem już pisanie zamiast x++ pisać ++x ale efekty były takie same.