Ejercicio con memoria dinamica y estructuras (ayuda)

Si eres principiante y tienes alguna consulta entra en este foro.
Responder
Mensaje
Autor
totitaaaa
Mensajes: 4
Registrado: 13/12/2019 8:19 pm

Ejercicio con memoria dinamica y estructuras (ayuda)

#1 Mensaje por totitaaaa » 14/12/2019 4:59 pm

Necesitaria ayuda con este ejercicio en c++ por favor. Abajo dejo la consiga y lo pensado

En un archivo denominado “pacientes.dat” se tienen almacenados los datos de todos los pacientes
que se realizaron una ecografía siguiendo la siguiente estructura:

Código: Seleccionar todo

struct paciente
{
	int codigo;//codigo único
	char NombreApellido[100];
	int dia, mes, anio; //fecha
	int region;	//1=corazón,2 = cuello,	3 = abdominal,4 = piernas
};
typedef struct paciente Paciente;
Si un paciente vino 2 veces, se crea un registro por cada visita usando el mismo código pero cambiando la fecha.

Crear una funcion que retorne el número de pacientes diferentes que hay en el array. Recuerde que en el array
un paciente puede aparecer varias veces (si se hizo varias ecografías) pero con el mismo código y diferentes fechas.
En esos casos solo se debe contar una vez.
int NroPacientes(Paciente *p, int n);


Lo que pense es que puedo hacer un array dinamico en el que copie todos los datos y ahi ir borrando los que necesito, en este caso los que tienen igual codigo y fecha.
Pero no estaria pudiendo pasarlo correctamente a codigo, me podrian ayudar? Gracias!!

Código: Seleccionar todo

int NroPacientes(Paciente *p, int n)
{
	int i, k, cont = 0;
	Paciente*aux = new Paciente[n]; //creo un array dinamico 
	Paciente aux1;
	for (i = 0; i < n; i++)
	{
		aux[i] = p[i];//copio todos los datos
	}

	for (k = 0; k < n-1; k++)
	{
		cont = 0;
		for (i = 0; i < n; i++)
		{
			if (p[i]->codigo && p[i]->dia + p[i]->mes + p[i]->anio)
				cont++;
		}
		

	}

}

mollok
Mensajes: 526
Registrado: 30/01/2018 9:47 am
Ubicación: Mallorca, España

Re: Ejercicio con memoria dinamica y estructuras (ayuda)

#2 Mensaje por mollok » 15/12/2019 8:28 am

Podrías crear un array que sea cópia del original y lo ordenas por número de paciente. Recorres el array y cuentas las veces que el número de paciente es diferente del elemento n al elemento n+1.
while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 4 invitados