yo entendi lo siguiente:
struct JOTA
{
float *a,*b,c; //punteros a vectores que contengan numero de punto flotante y una variable c
}
//si es asi podrias usar este codigo:
main()
{
JOTA *x;
int cantidadDeElementos,cantidadDeElementosJota;
scanf("%d",&cantidadDeElementos);
scanf("%d",&cantidadDeElementosJota);
x->a = (float*)malloc(sizeof(float)*cantidadDeElementos);
x->b = (float*)malloc(sizeof(float)*cantidadDeElementos);
//ambos vectores ahora tienen capacidad para almacenar 'cantidadDeElementos' elementos
//lectura de los vectores
for(int i=0;i<cantidadDeElementos;++i)
{
printf("Ingrese elemento para el vector a : ");scanf("%f",x->a);
printf("Ingrese elemento para el vector b : ");scanf("%f",x->b);
//se ingresan 2 flotantes y se asignan a los vectores en las posiciones 'i'
}
//la segunda estructura JOTAS me parece un poco innecesaria
// bien podrias hacer esto si necesitas un vector de JOTA
JOTA *vj;
vj = (JOTA*)malloc(sizeof(struct JOTA)*cantidadDeElementosJota);
//y proceder de la misma forma a la lectura ya que vj es un vector de jotas y cada elemento jota contiene vectores de numeros flotantes
//ahora el truco es que para escribir en un elemento de vj debes hacerlo de la siguiente manera
vj[indice]->a[indiceDelVectorA] = datoAGuardar;
//pero no te olvides de dimensionar cada vector a y b para cada elemento del vector vj
}
Saludos!