Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Gianz Ghrako en 18 de Abril 2016, 18:01
-
tengo este codigo en el que registro diez nombres y luego busco ingreso otro nombre para verificar si fue ingresado en la lista..
lo que nececito es que me ayudeis a corregir mi error, porque aunque ingreso un nombre de la lista para verificar, me dice que no fue registrado.
#include <stdio.h>
int main()
{
int i, j;
char Lista[10][40], nombre[1][40];
for(i=0; i<10; i++)
{
printf("Nombre %d: ", i);
scanf("%s", Lista[i]);
}
printf("\n\nBuscar a : " );
scanf("%s", nombre[1]);
j=0;
for(i=0; i<10; i++)
{
if(Lista[i]==nombre[1])
{
printf("Guardado en el espacio %d del registro", i);
j++;
}
}
if(j==0)
{
printf("\n\n%s no fue registrado..\n\n", nombre[1]);
}
return 0;
}
-
Amigo el problema surge a partir de que en C los array's guardan un carácter por posición, cuando intentas ingresar un valor solo guarda el primer carácter independientemente de su longitud. Por otro lado tienes algunos errores en tu código, cuando intentes guardar un valor en una variable en C no olvides colocar el simbolo "&"(sin comillas) antes de la variable. Me tome el atrevimiento de modificar tu codigo, quedó así:
#include<stdio.h>
int main(){
int i,j;
char Lista[10];
char nombre[2];
for (i=0;i<10;i++){
printf("Nombre %d: \n",i);
scanf("%s",&Lista[i]);
}
printf("Ingrese valor a buscar: ");
scanf("%s",&nombre[1]);
j=0;
for(i=0;i<10;i++){
if(nombre[1]==Lista[i]){
printf("La ubicación del datos es %d\n",i);
}
else{j++;}
}
if(j>9){
printf("El valor no esta registrado");
}
return 0;
}