Pues bien, sigo yo con mis dudas.

Estoy haciendo la funcion que valida los datos y vuelve a pedirlos en caso de que sean incorrectos:

int validar_datos(int *pn_articulo, int *pex_ini, float *pprecio_uni)

{
int b1=0;
while(b1!=1)
{
if(n_articulo>=1001 && n_articulo<=4004)
if(ex_ini>=1 && ex_ini<=400)
if(precio_uni>=1 && precio_uni<=123)
{
printf("\nNumero de articulo: %d", n_articulo);
printf("\nExistencias Iniciales: %d", ex_ini);
printf("\nPrecio unitario: %.2f", precio_uni);
b1=1;
}
else
{
printf("\n¡!*¡* ERROR *!*!*\n\n\aReingrese el precio unitario: ");
fflush(stdin);
scanf("%f", &*pprecio_uni);
}
else
{
printf("\n¡!*¡* ERROR *!*!*\n\n\aReingrese las existencias iniciales: ");
fflush(stdin);
scanf("%d", &*pex_ini);
}
else
{
printf("\n¡!*¡* ERROR *!*!*\n\n\aReingrese numero de articulo: ");
fflush(stdin);
scanf("%d", &*pn_articulo);
}
}
}

El tema es que, nuevamente, me vi forzado a utilizar punteros para que los datos que toman los scanf de la funcion se asignen efectivamente a las variables globales. Peeeero, en la clase aun no vimos punteros :s. Existe alguna forma de que la funcion realice esa tarea sin punteros?. O directamente cuando uno de los datos es erroneo se deben volver a pedir pero desde fuera de la funcion?. De ser asi tendria que volver a estructurar todo el programa calculo.

Muchas gracias!