Loading...
slavib avatar slavib 0 Точки

Защо се променя стойността на acme от 4 та задача ?

Това е най - странният резултат който получавам - единствено първата компаня има грешен резултат за другит ерезултата е точен . Как е възможно ?

std::string getProfitReport(const Company* firstCompany,const Company* lastcompany, std::map<int,ProfitCalculator> profitcalc){

    std::map<int,ProfitCalculator>::iterator it;
    std::string result;
    for (it = profitcalc.begin(); it != profitcalc.end(); it++)
    {
        if (firstCompany->getId()>lastcompany->getId()){
            break;
        }else {
             result.append(firstCompany->getName() + " = " + std::to_string(it->second.calculateProfit(*firstCompany))+"\n");
            *firstCompany++;
        }
    }
    return result;
}
Тагове:
0
C++ Advanced
galin_kostadinov avatar galin_kostadinov 166 Точки

Привет!

От условието на задачата се вижда, че компаните с техните печалчи са принтирани в реда на получаване на компаниите(преди първия еnd).

Във втората част от задачата получаваш tax percentage, като тук се вижда, че компаните, редовете с id <-> tax percentage са в друг ред спрямо първата част на входа. Ти ги запазваш в map, което означава, че се подреждат спряма ключа на мапа, т.е. по id в нарастващ ред.

В последствие итерирараш спряма подредбата в map, т.е. не вземаш таксата(процента) на съответната компания, а тази която е поредна в map:

std::map<int,ProfitCalculator>::iterator it;
for (it = profitcalc.begin(); it != profitcalc.end(); it++){}

Два от отговорите ти пасват просто случайно.

Пробвай да итерираш спрямо подредбата на компаните:

const Company* currCompany = firstCompany; currCompan++;

Вземаш id-то на съответната компания:

int id = currCompany->getId();

int result = profitCalc.find(id)->second.calculateProfit(*currCompany);

Поздрави!

 

 

 

 

1
03/12/2019 13:47:39
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.