Dev - C++ - Duda - punteros

 
Vista:
sin imagen de perfil
Val: 7
Ha disminuido su posición en 5 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Duda - punteros

Publicado por Jesús (2 intervenciones) el 02/10/2020 22:55:57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <string.h>
#include <math.h>
using namespace std;
void lados(float h,float ab,float *triangulo);
void hipotenusa(float b,float a,float *triangulo);
int main(){
char decision[10];
cout<<"Indique que parte del triangulo-rectangulo desea conocer (base,hipotenusa o altura): ";
cin>>decision;
	 if(strcmp(decision,"base")==0){
		float h,a,triangulo=0;
		cout<<"Indique el valor de la hipotenusa y luego de la altura, por favor: "<<endl;
		cin>>h>>a;
		lados(h,a,&triangulo);
		cout<<"El valor de la base es: "<<triangulo;
	}
	else if(strcmp(decision,"hipotenusa")==0){
		float b,a,triangulo=0;
		cout<<"Indique el valor de la base y luego el de la altura: "<<endl;
		cin>>b>>a;
		hipotenusa(b,a,&triangulo);
		cout<<"El valor de la hipotenusa es: "<<triangulo;
	}
	else if(strcmp(decision,"altura")==0){
		float b,h,triangulo=0;
		cout<<"Indique el valor de la base y luego de la hipotenusa, por favor: "<<endl;
		cin>>b>>h;
		lados(h,b,&triangulo);
		cout<<"El valor de la altura es: "<<triangulo;
	}
	else{
		cout<<"Instruccion incorrecta";
	}
cin.get();
cin.get();
return 0;
}
void lados(float h,float a,float *triangulo){
	*triangulo=sqrt((h*h)-(a*a));
}
void hipotenusa(float b,float a,float *triangulo){
	*triangulo=sqrt((a*a)+(b*b));
}
Buenas tardes y disculpen de antemano las molestias. Dejando de lado que el programa evidentemente se puede reducir bastante y esto solo lo hice como un "ejemplo" para algo, me encuentro con el siguiente problema: Al correr base y altura no tengo ningún inconveniente en la salida, me genera resultados correctos y termina la ejecución el programa, ahora al correr hipotenusa, termina la ejecución , genera resultados pero sale un anuncio algo extraño. Lo que es aún mas extraño es que presione enter y siga como si nada y termine la ejecución, pondré imágenes al respecto.
Pd: Nuevamente recalco, estoy consciente de que el programa se puede reducir bastante. Quisiera saber su opinión únicamente con respecto a sintaxis de errores.
altura
base
error1
error2
error3
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Duda - punteros

Publicado por Rodrigo (539 intervenciones) el 03/10/2020 00:40:03
decision tiene tamano 10, "hipotenusa" tiene tamano 11, pues son 10 caracteres visibles un 11-avo invisible (marca de fin de string).

Aumenta el tamano de decision a 11 y vuelve a probar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 7
Ha disminuido su posición en 5 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Duda - punteros

Publicado por Jesús (2 intervenciones) el 03/10/2020 00:55:03
Muchísimas gracias , si era el error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar