Ciao a tutti. Non riesco a capire perchè non funziona questo programma estremamente facile...Credo ci sia un problema nella stampa finale...

#include<iostream>
#include<cstdlib>
#include <string>
using namespace std;

struct Tpersona
{
char nome[20];
char cognome[20];
int anni;
} ;

Tpersona persone[3];
char cercapersona[20]; //il nome della persona che voglio cercare


main()
{
int i=0;
bool trovato=false;

for(int j=0;j<3;j++)
{
cout<<"Nome persona: ";
cin>>persone[i].nome;

cout<<"Cognome persona: ";
cin>>persone[i].cognome;

cout<<"Anni persona: ";
cin>>persone[i].anni;
}

cout<<"Chi vuoi cercare?(nome) ";
cin>>cercapersona;


while((i<3) && (!trovato))
{
if(strcmp(persone[i].nome, cercapersona)==0)
trovato=true;

else
i++;
}
cout<<"Nome: "<<persone[i].nome<<endl;
cout<<"Pianeta: "<<persone[i].cognome<<endl;
cout<<"Anni: "<<persone[i].anni<<endl;
system("pause");

}