Dev - C++ - El programa corre; pero en las 2 ultimas premisas no me da la respuesta correcta

 
Vista:

El programa corre; pero en las 2 ultimas premisas no me da la respuesta correcta

Publicado por Julia (5 intervenciones) el 29/04/2021 20:42:02
El dueño de un estacionamiento requiere de un algoritmo que le permita determinar cuánto debe cobrar por el uso del estacionamiento a sus clientes. Las tarifas que se tienen son las siguientes:
 Las dos primeras horas a $5.00 c/u.
 Las siguientes tres a $4.00 c/u.
 Las cinco siguientes a $3.00 c/u.
 Después de diez horas el costo por cada una es de $2.00.
Se le solicita que elabore un programa en C++ que teniendo como datos el número de horas que el auto de un cliente permanecerá en el estacionamiento, determine e imprima el monto a pagar.
Nota:
Debe validar los datos de entrada para una correcta ejecución de su programa.



Código es:
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
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
	int precio, h,cantidad;
	cout << "Ingresar las horas a alquilar:\t";
	cin >> h;
	cout <<"Ingresar la cantidad de autos:\t";
	cin >> cantidad;
	if (h == 2) {
		precio = 5*cantidad;
	}
	else {
		if (h > 2)
		{
			precio = 4*cantidad;
		}
		else {
			if (h > 4)
			{
				precio = 3*cantidad;
			}
			else {
				if (h > 9)
				{
					precio = 2*cantidad;
				}
			}
		}
	}
	cout << "El precio del alquiler del auto es:" << precio;
}
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
sin imagen de perfil
Val: 317
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

El programa corre; pero en las 2 ultimas premisas no me da la respuesta correcta

Publicado por Miguel (215 intervenciones) el 29/04/2021 22:50:04
Debes agregar rangos a tus ifs
por ejemplo con el codigo actual
si tu pones que son 10 horas el flujo entra en el segundo if
porque 10 es mayor que dos.

rango 1
horas>0 y menor o igual a 2. en codigo es if (( h>0)&& (h<=2))


rango 2
mayor de 2 y menor o igual a 4 en codigo el if es ((h>2) && h<=3))
y asi.....
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