Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/12/2004, 05:35
chcma
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 9 meses
Puntos: 7
Lenguaje C, problema al pasar de un tipo de valor a otro

Buenos días otra vez, jejeje.

Vereán, tengo que realizar la representación de una función senoidal, para ello tengo que meter unos parametros en la aplicación, dependiendo de cuantos parametros haya metido, las filas y columnas serán mas largas.

Una vez metidos esos parametros, tengo que calcular en que columna tengo que marcar un * para representar la función senoidal.

Es decir:

./aplicaion 10 25 30 45

__*_
___*
__*_
___*

Para ello tengo esta formula:

columna = ( sin(parametroX)-1/2 ) * (numeroparametrosmetidos-1)(numeroparametrosmetidos-1)


Bien, creo que lo tengo casi todo bien, pero tengo un problema, al intentar hacer el sin(ValorDelParametro) me dice que el parametro pasado a sin tiene que ser de tipo double, y claro, yo lo tengo de tipo entero.

Hice esto, pero no funciona, si pueden resolver la duda, se lo agradecería muchisimo:


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define PI 3.1415

void main(int argc, char *argv[]){
int i, j, col;
if(argc-1<2){
printf("Has de insertar dos parametros \n");
}else{
for(i=0; i<argc-1; i++){
for(j=0; j<argc-1; j++){
//*** AQUI FALLA NO ME LO PASA A DOUBLE
col=(sin((double)argv[j+1])-1/2) * (argc-1)+(argc-1);
if(col=j+1){
printf("*");
}else{
printf("_");
}
}
printf("\n");
}
}
}


El error es: Se uso un valor de apuntador cuando se esperaba un valor de coma flotante.

Como ven, yo puse: (double)argv[j+1] para ver si me convertia el tipo argv a double, pero no funciona.

¿Alguien sabe como podría cambiarlo, please?
__________________
Charlie.