[ Foro de C ]
Hola a todos bueno tengo que hacer una agenda electronica que utilice funciones y que tengas las opción de agregar un contacto, buscar un contacto tecleando las primeras 3 letras y mostrar todos los registros, entonces todo iba bien hasta que no pude hacer el que te busca el contacto, y pensé que estaba mal en otras cosas. Porfavor necesito que me ayuden a saber como se hace o en que estoy mal se lo agradecería muchisimo.
Ésto es lo que llevo:
#include <stdio.h>
#include <string.h>
char Nombre[10][50];
char Correo[10][50];
char Telefono[10][20];
char Direccion[10][100];
int NumeroRegistro=1, opcion, contactos;
char uno,dos,tres;
int main(){
do {
printf("\n\t\t\tAgenda Electr%cnica",162);
printf("\n\t\t\t====================");
printf("\n\n\t\t1.Agregar un registro");
printf("\n\t\t2.Buscar registro");
printf("\n\t\t3.Desplegar todos los registros");
printf("\n\t\t4.Salir\n");
printf("\n\t\tOpci%cn:",162);
scanf ("%d",&opcion);
switch (opcion) {
case 1:
agregar_registro(NumeroRegistro);
break;
case 2:
buscar_registro();
break;
case 3:
mostrar_registros ();
break;
case 4:
salir();
break;
default:
printf ("\nOpci%cn no v%clida.",162,160);
}
} while (opcion != 4);
}
agregar_registro(NumeroRegistro) {
printf("¿Cuantos contactos deseas agregar?: ");
scanf("%d",&contactos);
for (NumeroRegistro=1; NumeroRegistro<=contactos; NumeroRegistro++) {
printf("\nEscribe el nombre del contacto %d: ", NumeroRegistro);
scanf ("%s",Nombre[NumeroRegistro]);
printf("Escribe el correo: ");
scanf ("%s",Correo[NumeroRegistro]);
printf("Escribe el telefono: ");
scanf ("%s",Telefono[NumeroRegistro]);
printf("Escribe la direccion: \n");
scanf("%s",Direccion[NumeroRegistro]);
}
return 0;
}
mostrar_registros () {
for (NumeroRegistro=1; NumeroRegistro<=contactos; NumeroRegistro++) {
printf ("\n\t\tContacto %d\n ",NumeroRegistro);
printf ("\nNombre: %s",Nombre[NumeroRegistro]);
printf ("\nCorreo: %s",Correo[NumeroRegistro]);
printf ("\nTelefono: %s",Telefono[NumeroRegistro]);
printf ("\nDireccion: %s",Direccion[NumeroRegistro]);
}
return 0;
}
salir() {
printf("Adios");
return 0;
}
buscar_registro() {
printf ("Escribe los tres primeros caracteres a buscar: ");
//fflush(stdin);
scanf("%c,%c,%c",&uno,&dos,&tres);
//"%c%c%c", &uno,&dos,&tres);
for (NumeroRegistro=1; NumeroRegistro==contactos; NumeroRegistro++) {
if (uno == Nombre[NumeroRegistro][0])
{
if (dos == Nombre[NumeroRegistro][1])
{
if (tres == Nombre[NumeroRegistro][2])
printf ("\tContactos:\n %s", Nombre[NumeroRegistro]);
}
}
else {
printf ("\nNo existe el contacto\n");
}
}
return 0;
}
Hay algunos errores. Por ejemplo:
- En agregar_registros pasas un NumeroRegistro que luego no usas, y cuyo valor destruyes en el "for".
- En agregar_registros usas una variable "contactos", y siempre cuentas desde uno hasta ella, de modo que la segunda vez que añadas, sobreescribirías los datos de la pasada anterior.
- En buscar_registro, la condición del "for" es incorrecta: "NumeroRegistro==contactos"
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)