C/Visual C - Paso parámetro tipo tupla a función booleana

 
Vista:

Paso parámetro tipo tupla a función booleana

Publicado por David (3 intervenciones) el 09/11/2019 11:04:19
Buenos días,

estoy empezando a aprender programación en C. Tengo un programa en el cual se leen por teclado los datos de dos tuplas (datos estructurados). Estos datos tengo que pasarlos a una función de tipo booleana, para comprobar que ciertos parámetros de las tuplas son TRUE o FALSE. El código que tengo es el siguiente (no expongo todo el código del programa):

1
2
3
4
5
6
7
8
9
10
11
12
13
acceptable1 = hotelAcceptable(h1, price, distance);
	acceptable2 = hotelAcceptable(h2, price, distance);
 
	if (acceptable1 == TRUE && acceptable2 == TRUE && h1.city == h2.city) {
		printf("AMBOS HOTELES SON ACEPTABLES");
 
boolean hotelAcceptable(tHotel h, float price, float distance) {
	if ((h.hasPool == TRUE || h.hasGym == TRUE) && (h.distanceFromCityCenter < distance || h.closeToSubway == TRUE) && (h.priceDouble < price)) {
		return TRUE;
	} else {
		return FALSE;
	}
}

Al ejecutar el programa, no sucede nada. Creo que tengo algo mal en el paso de los parámetros a la función, pero no logro ver el problema. ¿Alguien podría ayudarme?

Un saludo y gracias por adelantado.
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: 350
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Paso parámetro tipo tupla a función booleana

Publicado por Rodrigo (119 intervenciones) el 09/11/2019 14:44:42
Explica mas. "No sucede nada" quieres decir que se detiene la ejecucion? Se congela? que no imprime el mensaje que quieres?

Si es esto ultimo, te sugiero imprimir los valores que tienen las variables "acceptable1", "acceptable2", h1.city y h2.city
antes de ejecutar el if de la linea 4. si alguna de las variables booleanas no es TRUE o el campo city de h1 y h2 no calza, entonces esta bien que no imprima nada.
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

Paso parámetro tipo tupla a función booleana

Publicado por David (3 intervenciones) el 09/11/2019 15:30:47
Quiero decir que no imprime el mensaje. Previamente, yo ya he tecleado los valores de las tuplas h1 y h2 para que el mensaje se muestre. He hecho lo que me has dicho, he imprimido las variables antes del if, y me sale:

1
2
3
4
1 //(para la variable "acceptable1")
1 //(para la variable "acceptable2")
Madrid //(para la variable "h1.city")
Madrid //(para la variable "h2.city")

Sin embargo, no me imprime el mensaje. ¿Qué puede estar mal?

Gracias.
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
Imágen de perfil de Rodrigo
Val: 350
Bronce
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Paso parámetro tipo tupla a función booleana

Publicado por Rodrigo (119 intervenciones) el 09/11/2019 15:51:38
Si esto es C, creo que el problema esta en que en C la comparacion de string no se hace comparando directamente las variables, se usa una funcion:

1
2
3
if (acceptable1 == TRUE && acceptable2 == TRUE && strcmp(h1.city, h2.city) == 0 ) {
   printf("AMBOS HOTELES SON ACEPTABLES");
}
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

Paso parámetro tipo tupla a función booleana

Publicado por David (3 intervenciones) el 09/11/2019 16:26:19
Ahora sí que imprime el mensaje. No había caído en la función para comparar strings.

Muchas gracias por tu ayuda.
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