Професионална програма
Loading...
+ Нов въпрос
eng.Kanev avatar eng.Kanev 0 Точки

Помощ за задачата " Ски почивка"

Здравейте, някой може ли да ми помогне, защото не ми дава повече от 40 от 100 в judge, а не мога да разбера къде греша? Задачата е "Ски почивка"  в PB c++.

Ето и кода:


#include <iostream>
using namespace std;
int main()
{
    int day;
    string room, evalution;

    cout.setf(ios::fixed);
    cout.precision(2);

    cin >> day >> room >> evalution;

    double night = day - 1;

    double sleep = 0;

    if (room == "room") {
        sleep = night * 18.00;
        
    }
    else if (room == "apartment") {
         sleep = night * 25.00;
        if (day < 10) {
            sleep = sleep - 0.30 * sleep;
          
        }
        else if (day > 10 && day < 15) {
            sleep = sleep - 0.35 * sleep;
        }
        else if (day > 15) {
            sleep = sleep - 0.50 * sleep;
        }
    }
    else if (room == "president") {
        sleep = night * 25.00;
        if (day < 10) {
            sleep = sleep - 0.10 * sleep;

        }
        else if (day > 10 && day < 15) {
            sleep = sleep - 0.15 * sleep;
        }
        else if (day > 15) {
            sleep = sleep - 0.20 * sleep;
        }
    }
    
    
   
        
        
        
        
        
        
        
    if (evalution == "positive") {
        sleep = sleep + 0.25 * sleep;
        cout << sleep;

    }
    else if (evalution == "negative") {
        sleep = sleep - 0.10 * sleep;
        cout << sleep;
    }
    
    
    
   
    
    
    
    
    return 0;
}

Тагове:
0
Programming Basics with C++
DeveloperEnthusiast avatar DeveloperEnthusiast 302 Точки

Здравей !

else if (day >= 10 && day <= 15)

Тези трябва да са ти така иначе при 10 и 15 не правиш нищо 

0
31/01/2020 13:06:26
eng.Kanev avatar eng.Kanev 0 Точки

Благодаря, сега изчислява правилно, но като стигна до писане на голям текст като: "room for one person" ми изчислява веднага 0,0. Как да го оправя?

0
mark79 avatar mark79 634 Точки

Здравей,

използвай getline() при четенето на входните данни. Например така :

#include <string>

...	

cin >> day;
cin.ignore();
getline(std::cin, room);
cin >> evalution;

Ако се затрудняваш, прегледай това решение.

Поздрави :)

0