[C++] program obliczający optymalną podaż- błąd logiczny

diego_maradona
Użytkownik
Użytkownik
Posty: 184
Rejestracja: 16 cze 2010, o 00:59
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 80 razy

[C++] program obliczający optymalną podaż- błąd logiczny

Post autor: diego_maradona »

Kod: Zaznacz cały

#include "stdafx.h"
#include <iostream>
#include <iomanip>


using namespace std;

int main()
{
	double price,increase,maintainCost,units,profit1,profit2;
	int i,apartaments;

	cout<<fixed<<setprecision(2);
    cout<<"Enter the price per each unit which results in occupying all apartaments   ";
	 cin>>price;
    cout<<"Enter the increase in rent that results in a vacant unit ";
	 cin>>increase;
    cout<<"Enter the amount to maintain a rented unit ";
	 cin>>maintainCost;
    cout<<"How many apartaments do you have to rent? ";
	 cin>>apartaments;
	 
	 i=0;
	 profit1=0;
	 profit2=0;

	 while (profit1<=profit2)
	 {
	        profit1=(price+increase*i)*apartaments-maintainCost*(apartaments-i);
	        apartaments--;
			i++;
			profit2=(price+increase*i)*apartaments-maintainCost*(apartaments-i);

			
	 }

	 cout<<"The highiest available profit is "<<profit2<<endl;
	 cout<<"You should rent "<<apartaments<<" apartaments"<<endl;
    system("PAUSE");
    return 0;
}      

Program ma pytać o liczbę apartamentów do wynajęcia, cenę za każdy, przy której wszystkie zostaną zajęte, koszt utrzymania ZAJĘTEGO apartamentu oraz podwyżkę tej ceny, przy której zostanie zajęty o jeden mniej. Następnie wyznacza liczbę mieszkań do wynajęcia, przy których będzie największy zysk.

Za każdym razem wyświetlają mi się jednak minimalnie złe wartości największych zysków.
Gdzie jest błąd?
octahedron
Użytkownik
Użytkownik
Posty: 3568
Rejestracja: 7 mar 2011, o 22:16
Płeć: Mężczyzna
Lokalizacja: Wrocław
Pomógł: 910 razy

[C++] program obliczający optymalną podaż- błąd logiczny

Post autor: octahedron »

Jak rozumiem "apartments" to liczba zajętych mieszkań, więc chyba powinno być tak:

Kod: Zaznacz cały

profit1=(price+increase*i)*apartaments-maintainCost*(apartaments);

Kod: Zaznacz cały

profit2=(price+increase*i)*apartaments-maintainCost*(apartaments);
diego_maradona
Użytkownik
Użytkownik
Posty: 184
Rejestracja: 16 cze 2010, o 00:59
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 80 razy

[C++] program obliczający optymalną podaż- błąd logiczny

Post autor: diego_maradona »

Gratuluję spostrzegawczości Zamiast tego można było usunąć apartaments--; i też jest wszystko w porządku , dzięki!
ODPOWIEDZ