Hilo
Ejercicio 11-1 (Alexander) 2017-02-21 16:00:22
Tengo un error en la ejecución del código. Al hacer la búsqueda ya sea por nombre o por teléfono, si busco el último elemento de la estructura, número 3 en mi caso para hacerlo más rápido lo he limitado a 3 posiciones, me sale mal. Si busco el primero o el segundo no hay ningún problema y la ejecución es correcta.
El código que he utilizado es el siguiente:
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
struct persona{
char Nombreyap[10];
char Numerotel[9];
} Plantilla[2];
void busportel (char Numtlf[9]);
void buspornom (char Nompers[10]);
char Numtlf[9]; char Nompers[10]; int i=0;
int main(){
int copcion;
//METEMOS LOS DATOS:
for(i=0;i<3;i++){
cout<<"Introduce los nombres y telefonos de 3 personas"<<endl;
cout<<"Nombre"<<i+1<<": "<<endl;
cin>> Plantilla[i].Nombreyap;
cout<<"Telefono"<<i+1<<": "<<endl;
cin>> Plantilla[i].Numerotel;
}
for(i=0;i<3;i++){
cout<<"Nombre"<<": "<<Plantilla[i].Nombreyap<<endl;
cout<<"Telefono"<<": "<<Plantilla[i].Numerotel<<endl;
}
//MENÚ PRINCIPAL
cout << "*****************************************************" << endl;
cout << " MENU PRINCIPAL " << endl;
cout << "*****************************************************" << endl << endl << endl;
cout << "Marque la opcion que desea realizar" << endl << endl;
cout << "1- Buscar por: Un numero telefonico" << endl;
cout << "2- Buscar por: El nombre de una persona" << endl;
cout << "3- Salir" << endl << endl << endl << endl << endl << endl << endl;
cin>> copcion;
while(1){
if (copcion==1){
cout<<"Introduzca el numero de tlf: "<<endl;
cin>> Numtlf;
busportel(Numtlf);
}
if (copcion==2){
cout<<"Introduzca el nombre de la persona: "<<endl;
cin>> Nompers;
buspornom(Nompers);
}
if (copcion==3){
cout<<"Saliendo del programa..."<<endl;
return 0;
}
if (copcion!=1&&copcion!=2&&copcion!=3){
cout<<"Introduce un numero del 1 al 3 por favor."<<endl;
}
}
return 0;
}
void busportel(char Numtlf[9]){
int aux=0;
bool vale=false;
for(i=0;i<3;i++){
if(strcmp(Numtlf,Plantilla[i].Numerotel)==0){
aux=i;
cout<<Plantilla[aux].Nombreyap<<endl;
cout<<Plantilla[aux].Numerotel<<endl;
vale=true;
}}
if(!vale){cout<<"Introduce un numero válido"<<endl;}
}
void buspornom(char Nompers[10]){
int aux=0; bool vale=false;
for(i=0;i<3;i++){
if(strcmp(Nompers,Plantilla[i].Nombreyap)==0){
aux=i;
cout<<Plantilla[aux].Nombreyap<<endl;
cout<<Plantilla[aux].Numerotel<<endl;
vale=true;
}
}
if(!vale){cout<<"Introduce un nombre valido"<<endl;}
}
:-(
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ