Estoy haciendo un ejercicio de punteros. El ejercicio consta en el que tengamos un struct con el numero de una carta, su valor y el tipo de carta (espada,copa,oro,basto,etc). Lo que tengo que hacer es cargar 3 variables de este tipo y con punteros, ordenarlas de manera que si una carta es de mayor valor, tiene que mostrarse primero y el espacio de memoria debe ser intercambiado por la carta que tiene un valor menor. No se si me explico.
En el struct va ordenado ( numero de la carta (Ejemplo 1), valor de la carta (Si es un ancho de espadas va un 10 por ejemplo), y el palo de la carta (e = espada, c= copa, o = oro , b = basto)
Hasta ahora hice lo siguiente
Código
#include <stdio.h> #include <stdlib.h> typedef struct { int numero; int valor; char palo; } t_carta; void INTERCAMBIO(t_carta *,t_carta * ,t_carta * ); int main() { t_carta c1,c2,c3; c1.numero=3; c1.palo='c'; ///Cargo las 3 Cartas c1.valor=6; c2.numero=1; c2.valor=10; c2.palo='e'; c3.numero=3; c3.valor=6; c3.palo='c'; INTERCAMBIO(&c1,&c2,&c3); /// Le paso la direccion de memoria de las 3 cartas a la funcion! return 0; } void INTERCAMBIO(t_carta *pa,t_carta *pb ,t_carta *pc) ///Y ACA SALE TODO ERROR!!! T_T { t_carta aux; if ((*pa->valor)<(*pb->valor)) { aux=*pb.valor; *pb.valor=*pa.valor; *pa.valor=aux; } if (*pb.valor<*pc.valor) { aux=*pc.valor; *pc.valor=*pb.valor; *pb.valor=aux; } if (*pa.valor<*pc.valor) { aux=*pc.valor; *pc.valor=*pa.valor; *pa.valor=aux; } }