La verdad es que el propósito de la función esta como a medias. Tengo que preguntar cual es el propósito que intentaste darle a la función, ya que no me queda claro todavía para que la queres utilizar específicamente.
No entiendo la utilidad del tercer parámetro. Primero, estoy de acuerdo con Nicolas_cof, la función debe tener un objetivo primario. Si lo analizas, el código de los mensajes ocupa mas que la función en si, lo cual no tiene mucho sentido.
En cuanto al tercer parámetro, supongo que es la opción "idioma" lo cual me parece bastante innecesario y ademas esta mal codificado debido a estos 2 detalles:
Si el switch no tiene un break, si ingresas un 1 en el tercer parámetro se van a mostrar los dos mensajes.
El segundo detalle esta relacionado con el anterior, el texto carece de formato, por lo tanto se veria algo como:
Enter a valueIntroduce un valor
Lo cual es incorrecto.
Ahora bien, en cuanto al propósito general de la función, he de decirte que no tiene mucho sentido. Vamos a analizarla por partes:
do
{
fscanf(stdin
, "%d", &atsint
);//Lees un entero } while (atsint<=ATSMAX && atsint>=ATSMIN);//Mientras sea menor o igual que MAX Y mayor o igual que MIN.
return atsint; //retorno el primer numero que ingrese que NO sea menor o igual que MAX Y mayor o igual que min
Y ahora veamos los comentarios:
* Function returns an integer if it works
*
* Syntax example: var =atsInNum(1, 6, 1);
* Returns a value between 1 and 6, displaying a message
Entenderás que no corresponde una cosa con la otra por lo tanto se torna bastante confuso.
Despacio y con análisis que van a salir cosas buenas, no apurarse.
Saludos