Hola tengo un problemilla, estoy haciendo un ejercicio de C, que va sobre estructura de un paciente, y al compilarlo me da error, en lista, dice que no es de tipo estructura. Yo no se donde está el problema, si alquien puede ayudarme, aquie le pongo el código.
/*Desarrolla un programa en C que use una estructra para la siguiente
informacion sobre un paciente de un hospital:nomre, direccion, fecha de
nacimiento, sexo, dia de visita y problema medico. El program deve tener una
funcion para entrada de los datos de un paciente, guardar los diversos pacientes
en un array y mostrar los pacientes cuyo dia de visita sea uno determinado.
*/
<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
#include <stdio.h>#include <stdlib.h>#define TAM 200struct paciente{
char *nombre;
char *direccion;
char fecha [
10];
char sexo;
//V o H char diavisita [
10];
char *problema;
};
main(){
char dia [
10];
struct paciente *lista;
tomaDatos(lista);
printf(
"Intrpoduzca la fecha de la consulta: (dd/mm/aaaa) ");
gets(dia);
mostrarConsulta(dia, lista);
}
tomaDatos(
struct paciente *lista)
{
int i;
char buffer [
80];
lista = (
struct paciente*) malloc(TAM*
sizeof(
struct paciente));
printf(
" Entrada de datos de los pacientes\n");
printf(
"============================= ==============\n");
for(i=
0; i < TAM; i++)
{
printf(
"Nombre del paciente: \n");
gets(buffer);
lista[i]->nombre = malloc(strlen(buffer)+
1);
strcpy(lista[i]->nombre, buffer);
printf(
"Direccion del paciente: \n");
gets(buffer);
lista[i]->direccion = malloc(strlen(buffer)+
1);
strcpy(lista[i]->direccion, buffer);
printf(
"Fecha de nacimiento (dd/mm/aaaa): \n");
gets(lista[i]->fecha);
printf(
"Sexo del paciente:\n");
lista[i]->sexo = getche();
printf(
"Dia de visita (dd/mm/aaaa): \n");
gets(lista[i]->diavisita);
printf(
"Problema medico del paciente: \n");
gets(buffer);
lista[i]->problema = malloc(strlen(buffer)+
1);
strcpy(lista[i]->problema, buffer);
printf(
"¿Desea continuar (S/N) \n");
if(getchar() ==
'N')
return;
}
}
mostrarConsulta(
char *dia,
struct paciente* lista)
{
int i;
printf(
"Pacientes con visita el dia %s\n\n", dia);
printf(
"==================== =====================\n");
for(i=
0; i<TAM; i++)
if(!strcmp(dia, lista[i]->diavisita))
printf(
"\t%s \n". lista->nombre);
}
<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
Gracias espèro una respuesta lo antes posible.
Resulta que me han comentado algo asi, como q no he declarado la estructura como puntero, por eso no puedo usar las flechas, si alguien me puede decir, sobre este codigo, donde tengo el error, es q no lo veo.
Gracias, saludos desde Andalucia
Saludos