problema en math.h en c
!- Categoría: C#/.NET
hola buenas, estoy tratando de hacer un programa que calcule en un tiro parabólico, las distintas variables de un tiro. Para eso, se pregunta al usuario que variable quiere hallar y se le piden los datos necesarios. Este es el código que llevo
#include #include
int main (int argc, const char * argv[])
{
int valor;
double posicionxinicial, posicionxfinal, posicionyinicial, posicionyfinal, desplazamientox, desplazamientoy, tiempoinicial, tiempofinal, tiempototal, vinicialx, vinicialy, vinicial, angulo;
printf(“¿Que variable quiere hallar? Teclee el número correspondiente\n Posición horizontal final: 1 \n Posición horizontal inicial: 2 \n Desplazamiento horizontal: 3 \n Posición vertical inicial: 4 \n Posición vertical final: 5 \n Desplazamiento vertical: 6 \n Tiempo inicial: 7 \n Tiempo final: 8 \n Tiempo transcurrido: 9 \n Velocidad inicial: 10 \n Velocidad inicial en x: 11 \n Velocidad inical en y: 12 \n Ángulo: 13 \n “); scanf(”%d”, &valor);
switch (valor) { case 1: printf(“Indique el valor de la posición inicial horizontal.”); scanf(”%f”, &posicionxinicial);
printf(“Indique el valor del tiempo transcurrido.”); scanf(”%f”, &tiempototal);
printf(“Indique el valor de la velocidad inicial.”); scanf(”%f”, &vinicial);
printf(“Indique el valor del angulo.”); scanf(”%f”, &angulo); double posicionxfinal = posicionxinicial + (vinicial * cos(angulo)*tiempototal); printf(“La posición final horizontal es %1f”, &posicionxfinal);
break;
default: break; } return 0; } solo he hecho el primer case, porque tengo un problema y es que el resultado siempre me sale 0 por algún motivo, lo cual es absurdo, el compilador me da una advertencia diciendo que “conversión type specifies double but argument tupe is float.” Alguien sabe sonde cometo el error??? muchas gracias de antemano
Ordenar por: Más útiles | Recientes | Cronológico
3 Respuestas
-
!
Karma: 15 (1 voto)
Sin ofender, pero creo que aquí no suelen resolver los deberes.
Si es un error en el código haz una traza y depuralo tú mismo como hemos hecho todos, eso te enseñara a valerte por tí mismo en un examen y a ser mejor programador.
Un saludo.
-
!
Karma: 8 (0 votos)
Te digo lo mismo que el compañero anterior, y paso de ponerme ahora a ver línea por línea el código, pero a juzgar por el mensaje error, posiblemente te está pasando que al hacer alguna operación el resultado sea un valor float y no double. Es decir, imagina que tienes un tipo Numerico100 (que admite valores entre 1 y 100). Si multiplicas dos números Numerico100, el resultado “puede” que no sea Numerico100.
-
!
Karma: 10 (0 votos)
El problema es que estas leyendo datos de tipo flotante y lo guardas en una variable que NO es de tipo flotante. Como tiene pinta de ser un ejercicio, no te doy más pistas, pero con esto ya podrás intuir por dónde van los tiros.