Ir ao conteúdo
  • Cadastre-se

Toda ves que encontra o nome , ele aparece "Nome Encontrado" , mas logo em seguida aparece 2 mensagem de "Nome Nao Encontrado"


juca_borba

Posts recomendados


#include <iostream>using namespace std;int main(){    string nome[3],nomep;    bool naoencontrado=false;    int i;    for(i=0; i<3;i++){       cout<<"Nome["<<i<<"]: ";       cin>>nome[i];    }    cout<<"Nome a pesquisar: ";    cin>> nomep;    for(i=0; i<3;i++){       if(nome[i]==nomep)         cout<<"nome encontrado..";       else naoencontrado= true;    }          if (naoencontrado == true){       cout<<"Nome nao encontrado"<<endl;       //naoencontrado=false;    }    system("pause");}
 Toda ves que encontra o nome , ele aparece "Nome Encontrado" , mas logo em seguida aparece 2 mensagem de "Nome Nao Encontrado"
 E toda ves que nao acha o nome aparece 3 mensagem de "Nome nao encontrado"
 
 Alguem por favor refaz o codigo para aparecer somente 1 mensagem de "Nome Encontrado" para quando achar o nome , e somente 1 mensagem para quando nao achar o nome "Nome Nao Encontrado"
 
Grato por quem poder ajudar
Link para o comentário
Compartilhar em outros sites

O problema é aqui:

for(i=0; i<3;i++){       if(nome[i]==nomep)         cout<<"nome encontrado..";       else naoencontrado= true;    } 

Detalhe: não se compara strings com ==. Chama-se um método em um dos objetos (nomep.compare(nome))
Supondo que você tem 3 nomes:  Marcos, Lúcio e Fernando. Você decide procurar por Marcos, que é o primeiro da lista.
Iteração #1: i=0; nome = Marcos, nomep = Marcos. São iguais, então é impresso "Nome encontrado."
Iteração #2: i=1; nome = Lúcio. Como são diferentes, você define um booleano p/ falso indicando que não foi encontrado.

#include <iostream>using namespace std;int main(){    string nomes[3];    string nome;    int i;    for(i=0; i<3;i++){       cout<<"Nome["<<i<<"]: ";       cin>>nomes[i];    }    cout<<"Nome a pesquisar: ";    cin>> nome;    for(i=0; i<3 && nome.compare(nomes[i]);i++);    if (i >= 3)       cout<<"Nome nao encontrado"<<endl;    return 0;}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...