C/Visual C - Que hago mal, no me sale este ejercicio

   
Vista:

Que hago mal, no me sale este ejercicio

Publicado por dario (2 intervenciones) el 14/04/2013 11:34:49
Hola foro tengo este enunciado:
Un programa que pida 10 nombres y los memorice. Después deberá pedir que se teclee
un nombre y dirá si se encuentra o no entre los 10 que se han tecleado antes. Volverá
a pedir otro nombre y a decir si se encuentra entre ellos, y así sucesivamente hasta que
se teclee “fin”.
Y este es mi codigo, esta en lenguaje C

#include <stdio.h>
main()
{
char nombres[5][21];
char nombreBuscar[21];
int i;

for (i=0; i<=4; i++)
{
printf("nombre: ");
scanf("%s",nombres[i]);
}

printf("\ningrese nombre a buscar::");
scanf("%s",nombreBuscar);

for (i=0; i<=4; i++){
if ((nombres[i]==nombreBuscar))
printf("encontrado");
}
}
El problema es que no se ejecuta el if no se porque. Inteto imprimir en pantalla "encontrado" pero nunca lo hace. Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Que hago mal, no me sale este ejercicio

Publicado por jOjO (1 intervención) el 17/04/2013 19:44:28
Hola

no he visto todo el programa pero a simple vista hay un error de concepto: estás comparando cadenas, no números, así que la línea

if ((nombres[i]==nombreBuscar))

está comparando punteros y no cadenas; para resolverlo, puedes usar una función como

if (strcmp(nombres[i],nombreBuscar)==0) // devuelve 0 si son iguales

o bien comparar ambas cadenas letra por letra.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar