Autor
|
Tema: Programa matematico `[ayuda] (Leído 7,140 veces)
|
dvaid
Desconectado
Mensajes: 10
|
hola chicos vereis me estoy iniciando en esto de la programacion en c utiizo el dev-C++ y estoy haciendo un programa el cual dado dos lados haya todos los angulos q posee el triangulo.el problema esta en q me compila pero a la hora de ejecutar despues de meter los datos salta, dejandome a dos velas he buscado un monton por internet y han aunque he encontrado cosas parecidas no lo he logrado. Os dejo el codigo para q m critiqueis y sacamos algo en claro.
#include <stdio.h> #include <math.h> #include <conio.h>
#define PI 3.14159265
int main() { int a,base,d,c,A,B,C,l; printf("Introduce altura: "); scanf("%i",&a); printf("Introduce base: "); scanf("%i",&l); c = sqrt((a^2)+(l^2)); A = acos((l*l+c*c-a*a)/(2*l*c))*180/PI; B = acos((a*a+c*c-l*l)/(2*a*c))*180/PI; C = acos((a*a+l*l-c*c)/(2*a*l))*180/PI; printf("A tiene %.1i \n",A); printf("B tiene %.1i \n",B); printf("C tiene %.1i \n",C); return(0); }
|
|
|
En línea
|
|
|
|
Darkgold9
Desconectado
Mensajes: 62
|
Copiando y pegando tu codigo en el codeblocks y dandole unos valores me rula, ya no comprobe si el resultado que da debe ser el correcto o no. Aqui screen:
|
|
|
En línea
|
|
|
|
bigfu
|
Sin profundizar mucho en el codigo, a primera vista veo que tienes variables sin utilizar, aunque eso no influye en el funcionamiento del programa, te recomiendo que las borres si no las usas (base, d). Luego, veo que en la sentencia c = sqrt((a^2)+(l^2)), utilizas ^para elevar al cuadrado. No se hace asi, o utilizas una funcion de la biblioteca math.h (que supongo que tendra una funcion para calcular los cuadrados) o simplemente lo cambias por a*a y l*l.
Saludos.
|
|
|
En línea
|
A reader lives a thousand lives before he dies. The man who never reads lives only one
|
|
|
dvaid
Desconectado
Mensajes: 10
|
muchas gracias por responderme ya he cambia esas cosillas, lo compilo y lo hace anque abajo me pone/ warning converting to "int" from "double" en las lineas en las q hago las operaciones, asu ves me deja compilar pero al ejecutar introduzco los datos altura y base y luegono m sale nada es como si el programa termine ai os dejo el codigo retocado
PD: quite la libreria conio.h gracias a los post de arriba q me he ido leyendo jejeje
#include <stdio.h> #include <math.h>
#define PI 3.14159265
int main() { int a,c,A,B,C,l; printf("Introduce altura: "); scanf("%i",&a); printf("Introduce base: "); scanf("%i",&l); c = sqrt((a*a)+(l*l)); A = acos((l*l+c*c-a*a)/(2*l*c))*180/PI; B = acos((a*a+c*c-l*l)/(2*a*c))*180/PI; C = acos((a*a+l*l-c*c)/(2*a*l))*180/PI; printf("A tiene %.1i \n",A); printf("B tiene %.1i \n",B); printf("C tiene %.1i \n",C); return(0); }
PD2:estoy utilizando el dev-C++ no se si sera bueno pero es con el q me enseñaron en la uni
|
|
« Última modificación: 12 Agosto 2011, 14:45 pm por dvaid »
|
En línea
|
|
|
|
bigfu
|
Pon system("PAUSE") justo encima del return 0, a ver si va a ser por eso xD
|
|
|
En línea
|
A reader lives a thousand lives before he dies. The man who never reads lives only one
|
|
|
dvaid
Desconectado
Mensajes: 10
|
con el system pause no me compila me da error en la linea scanf("%i",&l); o en la de debajo 21 [Warning] converting to `int' from `double' me sale este error.
|
|
« Última modificación: 12 Agosto 2011, 15:05 pm por dvaid »
|
En línea
|
|
|
|
Darkgold9
Desconectado
Mensajes: 62
|
Cambia los valores de las variables a double, dado que stas haciendo operaciones que te van a devolver decimales. Mm y si no te va el system("PAUSE")... prueba a hacertelo tu manualmente, es decir: char x; printf("Presione una tecla para continuar"); scanf("%c",&x);
|
|
|
En línea
|
|
|
|
Dark Invader
Desconectado
Mensajes: 111
Lucha hasta el final para conseguir tu objetivo.
|
En vez de system("pause") utiliza la funcion de la libreria stdio.h:
Si sigue sin dar el resultado esperado miro un poco el codigo aver si veo el fallo. Un saludo
|
|
|
En línea
|
|
|
|
dvaid
Desconectado
Mensajes: 10
|
ahora me sale pero los numeros no concuerdan con los datos =hay algun fallo en los operandos y no lo veo, dejo el codigo para q se vea mejor
#include <stdio.h> #include <math.h>
#define PI 3.14159265
int main() { char x; double a,c,A,B,C,l; printf("Introduce altura: "); scanf("%d",&a); printf("Introduce base: "); scanf("%d",&l); c = sqrt((a*a)+(l*l)); A = acos((l*l+c*c-a*a)/(2*l*c))*180/PI; B = acos((a*a+c*c-l*l)/(2*a*c))*180/PI; C = acos((a*a+l*l-c*c)/(2*a*l))*180/PI; printf("A tiene %.1d \n",A); printf("B tiene %.1d \n",B); printf("C tiene %.1d \n",C); printf("Presione una tecla para continuar"); scanf("%c",&x); getchar(); return(0); }
|
|
« Última modificación: 12 Agosto 2011, 16:16 pm por dvaid »
|
En línea
|
|
|
|
dvaid
Desconectado
Mensajes: 10
|
tras estarlo mirando ytal creo q el problema esta en las operaciones matematicas sinembargo no consigo ver el error
|
|
|
En línea
|
|
|
|
|
|