Trivialidades

Rev
16 de Abril del 2004
Esto es una trivialidad pero me aconsejan como poner esto, por que no se en que falla

estan declaradas de manera global

struct dato
{
float precio;
} alumno[20];

esto esta en una función

void funcion(void)
{
a=0;

do
{
a++;
.....
printf("Dame el precio de inscripción: ");
scanf("%f",&alumno[a].precio);
....
}while()
}

El scanf es el que no funciona ya que me manda un error que dice que la variable flotante no esta linkeada, eso creo la palabra exacta es ("linked").
Por eso digo que es trivial unas putas lineas tan simples y no corren.
De antemano gracias por la ayuda que me puedad dar.

noel solw
16 de Abril del 2004
Esto no es ninguna trivialidad. Te juro que no se lo que pasa con la variable float dentro de struct.
El scanf funciona bien si en vez de float precio, declaramos int precio.
Tampoco hay problemas cuando en lugar de un array,
usamos alumno, como struct aislada.
En fin, encontre una solucion provisoria, de zapatero yo diria, y es usar una variable intermedia float x,
para joderlo al scanf.

Que te parece ?

#include <stdio.h>

struct dato
{
float precio;
} alumno[20];

void funcion()
{
int a=0;
float x;
do
{
printf("Dame el precio de inscripcion: ");
scanf("%f",&x);
alumno[a].precio = x;
printf("%6.2f n",alumno[a].precio);
a++;
}while(a < 4);
}

void main()
{
funcion();
}