Witam mam takie oto zadanie: Napisz funkcję pozwalającą wyszukać w bazie elementy o zadanych parametrach np. książka autora Adam Mickiewicz, rok wydania nie starszy niż 1990, o cenie z zadanego przedziału. Mój problem polega w tym, że jak już wpisze elementy do bazy, to funkcja wyszukująca jest w stanie wyszukać tylko ten ostatni element, a pierwszy element, nawet jak podam prawidłowe parametry nie zostaje odnaleziony i program zamyka się. Nie rozumiem gdzie jest błąd.
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
const int N=3;
struct dane{
char imie [15];
string nazwisko;
int wiek;
static int liczbaElementow;
};
int dane::liczbaElementow = 0;
void wyswietl(dane aOsoba){
cout << "Imie: " << aOsoba.imie << endl;
cout << "Nazwisko: " << aOsoba.nazwisko << endl;
cout << "Wiek: " << aOsoba.wiek << endl;
cout << "Liczba Elementow: " << dane::liczbaElementow << endl;
}
dane wypelnij(dane &aOsoba){
cout << "Podaj imie: " << endl;
cin >> aOsoba.imie;
cout << "Podaj nazwisko: " << endl;
cin >> aOsoba.nazwisko;
cout << "Podaj wiek: " << endl;
cin >> aOsoba.wiek;
dane::liczbaElementow++;
return aOsoba;
}
void wyszukiwanie(dane &aOsoba)
{
string m, g;
int l;
cout << "Kogo szukasz ? " <<endl;
cin >> m;
cout << "A moze nazwisko?" <<endl;
cin >> g;
cout << "W jakim wieku ?" << endl;
cin >> l;
if ((aOsoba.imie == m) && (aOsoba.nazwisko==g) && (aOsoba.wiek==l))
cout << "Znaleziono: " << aOsoba.imie << ", " << aOsoba.nazwisko << ", " << aOsoba.wiek;
}
int main() {
dane spisOsob[N];
for (int i=0; i<N; i++) {
wypelnij(spisOsob[i]);
wyswietl(spisOsob[i]);
}
wyszukiwanie(spisOsob[N]);
return 0;
}