Nose en que estoy fallando - Ejercicio con Punteros

Iniciado por palacio29, 17 Septiembre 2016, 16:55 PM

0 Miembros y 1 Visitante están viendo este tema.

palacio29

Hola

Tengo que crear una estructura con 4 variables int , cargar en esas variables 4 valores, mostrarlos por pantalla, y luego crear una funcion que modifique la posicion de  memoria de las variables de la estructura de manera que el numero mas bajo ingresado quede en la variable int "a".

Hasta ahora hice lo siguiente

#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int a, b, c, d;
}
t_cuatro;

void MODIFICAR(t_cuatro *pa,t_cuatro *pb,t_cuatro *pc,t_cuatro *pd);
int main()
{
    t_cuatro datos;
    printf ("Ingrese 4 numeros: ");
    scanf("%d%d%d%d",&datos.a,&datos.b,&datos.c,&datos.d);
    printf("\nEl numero %d es %p\nEl numero %d es %p\nEl numero %d es %p\nEl numero %d es %p",datos.a,&datos.a,datos.b,&datos.b,datos.c,&datos.c,datos.d,&datos.d);
    MODIFICAR(&datos.a,&datos.b,&datos.c,&datos.d);
    printf("\n");
    printf("\nEl numero %d es %p\nEl numero %d es %p\nEl numero %d es %p\nEl numero %d es %p",datos.a,&datos.a,datos.b,&datos.b,datos.c,&datos.c,datos.d,&datos.d);

    return 0;
}

void MODIFICAR(t_cuatro *pa, t_cuatro *pb, t_cuatro *pc, t_cuatro *pd)
{
    t_cuatro aux;


    if(((*pb)< (*pc) ) && ((*pb)< (*pd)) && ((*pb) < (*pa)))
    {
        aux.a=(*pa);
        *pa=*pb;
        *pb=aux.a;
    }

    if((*pc)< (*pa) && (*pc)< (*pd) && (*pc) < (*pb))
    {
        aux.a=*pa;
        *pa=*pc;
        *pc=aux.a;
    }
       if((*pd)< (*pa) && (*pd)< (*pc) && (*pd) < (*pb))
    {
        aux.a=*pa;
        *pa=*pd;
        *pd=aux.a;
    }







}


El tema es que en la funcion "MODIFICAR" me marca muchisimos errores y no se en que estoy fallando.

AlbertoBSD

El apuntadador que estas pasando es un int no un t_cuatro

deberia de quedar asi
void MODIFICAR(int *pa, int *pb, int *pc, int *pd);

void MODIFICAR(int *pa, int *pb, int *pc, int *pd)
{
t_cuatro aux;


if(((*pb)< (*pc) ) && ((*pb)< (*pd)) && ((*pb) < (*pa)))
{
aux.a=(*pa);
*pa=*pb;
*pb=aux.a;
}

if((*pc)< (*pa) && (*pc)< (*pd) && (*pc) < (*pb))
{
aux.a=*pa;
*pa=*pc;
*pc=aux.a;
}
   if((*pd)< (*pa) && (*pd)< (*pc) && (*pd) < (*pb))
{
aux.a=*pa;
*pa=*pd;
*pd=aux.a;
}
}


Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW