[C con Clase] Problemilla con esta definicion de matriz
srd4121 en njit.edu
srd4121 en njit.edu
Mar Dic 16 19:29:01 CET 2008
Hola Halowin,
Mensaje citado por: halowin <halowin3 en gmail.com>:
> SP> La función C/C++ para el "seno" es "sin", no "sen".
> SP> Prueba de nuevo. ;-)
>
> Hola Salvador, excepto ese error de transcripcion, NO funciona:
>
> float mate[2][2]={ {sin(3.14/4),0},{0,-cos(3.14/4)} };
>
> Me dice: El elemento inicializador no es constante.
>
Algunos compiladores son un poco más exigentes con la lista inicializadora.
Define constantes para los resultados de esas funciones; esto es,
const float seno45 = (float) sin(3.14/4.0);
const float coseno45 = (float) -cos(3.14/4.0); // no hace falta calcularlo
> Pero si la inicializo como:
>
> float mate[2][2];
> mate[0][0]=sin(3.14/4);
> mate[0][1]=0;
> mate[1][0]=0;
> mate[1][1]=-cos(3.14/4);
>
> Asi si funciona.
>
Técnicamente, esto no es una inicialización, sino una serie de asignaciones,
que obviamente funcionarán correctamente.
Por cierto, aconsejo usar más de 2 decimales para representar pi y a la hora
de usar estas funciones matemáticas como seno y coseno.
Espero haber resuelto el problema.
Steven
Más información sobre la lista de distribución Cconclase