Lo de no querer usar un bucle es porque quiero que el código sea lo más compacto posible y porque el número de elementos del array puede variar y yo no saber cuál es su tamaño. Además tengo un código de otro programa donde tengo lo siguiente:
Siendo prom un array con valores (promedios de un cálculo anterior) y maxprom el valor máximo de promcol. Así normalizo todo el array a la unidad de modo que todos los elementos de prom sean valores en el intervalo 0-1. Resumiendo, estoy dividiendo un array entre un escalar y funciona.
Sin embargo, ahora estoy con esta otra línea en la que (creo) estoy aplicando algo similar (trabajar directamente sobre un array aplicando funciones y operaciones "simples") pero no funciona.
aux es un array con elementos en el intervalo 0-1 y lo que quiero haceres lo siguiente:
-Aplicar la función signo (sign) a cada elemento de aux. De modo que el array se convierta en un array con -1,0,+1.
-Sumar 1 a todos los elementos de aux. Con esto consigo que todos los elementos tengan valores de 0, 1, 2.
-Dividir entre 2 todos los elementos de aux. Con ello logramos que los elementos del array valgan 0,0.5,1.
-Aplicamos la función entero (int). El resultado es que todos los elementos del array valgan 0 ó 1.
¿Por qué en el primer ejemplo el algoritmo funciona pero en el segundo no?
Si no consigo que funcione como lo he plantea, haré un bucle, pero me gustaría entender por qué no funciona mi código y hacerlo lo más compacto posible.
Muchas gracias!
PD: He modificado el código para ponerlo por partes y el problema está al aplicar la función entero (int) sobre el array.
El valor que me muestra en pantalla del array aux es el correcto. Sin embargo no llega a imprimir por pantalla el array y. Es decir, el problema lo tengo al aplicar int sobre el array. ¿Por qué?