A ver, es que tengo un curso que me he bajado por ahi que va poniendo ejercicios, y uno de ellos consiste en hacer lo siguiente: un programa que almacene datos de hasta 50 personas (tales como nombre, direccion, edad...) y que al pulsar Intro sin escribir nada cuando te pide el nombre aparezca un menu con las siguientes opciones: 1-mostrar todos los nombres; 2-mostrar los nombres de las personas con una cierta edad; 3-mostrar los nombres de las personas cuya inicial sea la que se indique en el programa; 4- salir del programa.
Bueno, de esto se trata el ejercicio, y yo lo hago todo bien (me imagino que seguro que se puede mejorar) menos la opcion 3, la de la inicial, no se como comparar la inicial que mete el usuario del programa con al primera letra de cada nombre!!! He hecho lo siguiente, pero me da un error (el case 3: es donde tengo el problema):
Código PHP:
#include <stdio.h>
#include <string.h>
struct {
char nombre[60], direccion[100];
int tlfno;
int edad;
}usuario[50];
char temp[11], letra;
int i, opcion, j, edad;
main()
{
for (i=0; i<50; i++)
{
printf("Escriba su nombre completo: ");
gets(usuario[i].nombre);
if (strcmp (usuario[i].nombre, "")==0) break;
printf("\nEscriba su direccion: ");
gets(usuario[i].direccion);
printf("\nEscriba su telefono: ");
gets(temp);
sscanf(temp, "%d", &usuario[i].tlfno);
printf("\nEscriba su edad: ");
gets(temp);
sscanf(temp, "%d", &usuario[i].edad);
}
do
{
printf("\n\n\nEscoja una opcion:\n");
printf("1.-Mostrar la lista de todos los nombres.\n");
printf("2.-Mostrar las personas de la edad que se indique.\n");
printf("3.-Mostrar las personas cuyo nombre empiece con la letra que se indique.\n");
printf("4.-Salir del programa\n");
scanf("%d", &opcion);
switch (opcion)
{
case 1:/*Muestra todos los nombres*/
for (j=0; j<=i; j++)
printf("%s\n", usuario[j].nombre);
break;
case 2:/*Muestra las personas de una cierta edad*/
printf("\nEscriba la edad que tienen las personas que quiere ver: ");
scanf("%d", &edad);
for (j=0; j<=i; j++)
if (usuario[j].edad==edad) printf("%s\n", usuario[j].nombre);
break;
case 3:/*Muestra las personas con la inicial que se indique*/
printf("Escriba la inicial: ");
scanf("%c", &letra);
for (j=0; j<=i; j++)
if (letra==usuario[j].nombre[0]) printf("\n%s", usuario[j].nombre);
break;
case 4:/*Sale del programa*/
printf("Fin del programa, pulse Intro para cerrar");
getchar();
break;
}
}
while (opcion!=4);
}
Bueno, espero que lo que he hecho no sea demasiada barbaridad y que podais ayudarme. Muchas gracias!!!!!!