Ayuda, Arreglo de estructuras

Iniciado por NicoSanhueza, 14 Junio 2018, 02:06 AM

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

NicoSanhueza

Buenas noches a todos, espero que esten bien.
Mi consulta es ¿ el numero de elementos que posea la estructura puede ser cualquiera o hay que definirlos? por ejemplo en vez de "{3,4.5}" colocar "{3,5,4.5}"

Lo otro, como puedo imprimir el numero 5 en el ultimo caso propuesto?



#include <stdio.h>
#include <stdio.h>
typedef struct beta
{
   int n;
   float d;
}dat;

double func(dat*);
typedef dat alfa[3];
double ff(alfa);

int main()
{

   dat gama[3]={{3,4.5},{6,7.0},{23,6.7}};
   printf("%.2lf\n",func(gama));//imprime 7.0
   printf("%.2lf\n",ff(gama));//imrpime 6.7
   return 0;
}

double func(dat* x)
{
   return x[1].d;// si es solo x[1] selecciona el conjunto 3,4; x[1].d selecciona el flotante de ese conjunto
}

double ff(alfa x)
{
   return x[2].d;
}


Gracias de antemano :)

Beginner Web

#1
No se lo que hay que hacer xd

Código (cpp) [Seleccionar]

#include <stdio.h>
typedef struct beta{ float n, m, d;}dat;
typedef dat alfa[3];
double func(dat* x){return x[0].m;}
double ff(alfa x){return x[2].m;}
int main()
{
    dat gama[3]={{3,5,4.5},{6,7.0},{23,6.7}};
    printf("%.2lf\n",func(gama));//imprime 7.0
    printf("%.2lf\n",ff(gama));//imrpime 6.7
    return 0;
}
7w7

MAFUS

Si quieres poner tres elementos en una estructura ésta debe tener al menos tres variables. No hay algo cómo estructuras dinámicas en C.

Si quieres una de tres elementos hay que declarar ese tipo.

Lo que si se pueden definir menos elementos de los que tiene la estructura, en ese caso C pone los no seleccionados a 0.

#include <stdio.h>

typedef struct {
    int a;
    int b;
    int c;
} estructura;

void print(char *s, estructura t) {
    printf("estructura %s:\n"
           "t.a = %d\n"
           "t.b = %d\n"
           "t.c = %d\n\n", s, t.a, t.b, t.c);
}

int main() {
    // defino solo los elementos que me interesan
    estructura m = {a: 1, c: 2};
    // defino de los primeros elementos de forma secuencial
    estructura n = {3, 4};
    // defino todos los elementos
    estructura o = {5, 6, 7};
   
    print("m", m);
    print("n", n);
    print("o", o);
}


Salida:
estructura m:
t.a = 1
t.b = 0
t.c = 2

estructura n:
t.a = 3
t.b = 4
t.c = 0

estructura o:
t.a = 5
t.b = 6
t.c = 7