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

Проблеми дал Господ.

Да започнем с това, че броят затварящи скоби трябва да е равен на този на отворените.

След int main() имаш { (начало на цялата ти програма), а тази скоба никъде не я затваряш.

Иначе причината да не ти се появяват текстовете е, че не присвояваш правилно наименованията към стринговете.

Забележи, че == се използва за сравнение (if (n%2==0), а за да присвоиш текста към стринга ти е достатъчно едно равно (=).

Тоест, ако премахнеш по едно= във всички редове, в които си присвоявал текст към стринг ( например  outfit == "Swim Suit"; става  outfit = "Swim Suit";) , ще се получи и програмата ти започва да работи.

 

Забележки: 

1. В "cout << "It's " << degree << " degrees, get your " << outfit << "and " << shoes << "." << endl;" си пропуснал един интервал преди and (удебелил съм го) и judge няма да ти отчита отговорите като верни, дори стойностите да са такива.

2. Вместо да пишеш два реда за да ограничиш закръгляването до n-ти символ (визирам cout.setf(ios::fixed);
    cout.precision(2);) можеш директно в реда на cout да ги добавяш.
Ако искам например x да е ограничен до втория смивол на десетичната запетая и да отпечатам стойността му, ще напиша просто cout << fixed << setprecision(2) << x << endl; . Удебелената част върши тази работа.

3. В конкретната задача setprecision ти е абсолютно излишен, не само защото го няма като условие. Самият ти си задал, че degrees е int, което ще е винаги цяло число. Никъде не го преобразуваш в double да речем за да има десетична запетая, а оттам и ограничение на символите след нея.

4.Допуснал си грешка при проверките за диапазона на температурата. В момента например при температура от 18 градуса, влизаш едновременно в два случая (if (degree >= 10 && degree <= 18)) и (else if (degree >= 18 && degree <= 24)). Според условието на задачата трябва да премахнеш равното във втората част, тоест над 18 градуса и до 24 включително.

5. В текущия вариант, Evening няма да ти работи коректно, защото си пъхнал всичко, свързано с Evening в проверката, удостоверяваща че е Afternoon. Ако го преместиш след } (края на Afternoon) ще работи коректно.

 

Предложение:

1. Помисли върху варианта предварително да зададеш стрингове с наименованията на дрехите и обувките. Например:

" string Sweatshirt = "Sweatshirt" ;
   string Sneakers = "Sneakers";
   string Shirt = "Shirt";......"

Тогава можеш да извикваш във всеки if (или if/else) директно стринга, който ти трябва и няма да пишеш по 2 реда това=онова, а директно печаташ резултата, например:

if (time == "Morning")  {
            cout << "It's " << degrees << " degrees, get your " << Sweatshirt << " and " << Sneakers << "." << endl;
        } . 

Ето пример на такова решение. Или пък можеш да ги изписваш директно всеки път, но ще е трудно за екипна работа. Разбира се, въпрос на предпочитание. Твоето също ще работи, разбира се.
 

След корекция на гореописаните проблеми ще получиш 100/100 точки в judge.

Весела вечер и успех!

 

 

 

 

0
04/02/2020 09:28:01
ilko.banov avatar ilko.banov 0 Точки

благодаря за помощта.

0
kaleanna avatar kaleanna -1 Точки

Добра новина, много добра

2048

0