Hola, quiero generar una carta aleatoria, pero mediante una funcion, el problema esta en que el programa no me compila. La funcion generara carta, crea una estructura temp y le asigna palo y numero, y retorna la struc, pero al hacer carta1 = generarcartaaleatoria(); me provoca un error porque al parecer es de tipo int, lo cual no entiendo.
#include <stdio.h>
struct carta
{
int numero;
char palo;
};
int numero[12];
char palo[4] = {'c', 'o', 'b', 'e'};
typedef struct carta cartau;
int main()
{
rellenar(numero,12);
cartau carta1;
carta1 = generarcartaaleatoria();
}
cartau generarcartaaleatoria()
{
cartau temp;
temp.numero = numero[rand()%11];
temp.palo = palo[rand()%4];
return temp;
}
void rellenar(int *vector,int tamanio){
int i;
for(i = 0; i < tamanio; i++) {
vector[i] = i+1;
}
return 0;
}
los errores por encima son
-no creaste los prototipos de la función, por lo que main no las conocerá...
-no agregaste stdlib.c que es quien tiene contiene a rand() (y tambien el uso de srand con time para inicializar)
-haces return en rellenar, lo cual da error porque rellenar es de tipo void (es decir tipo sin return)