Nested conditinals_Exercise_ Summer_Outfit
Здравейте
Не ми се показва outfit и shoes в изхода на кода.
Не знам какъв е проблема?
Нуждая се от помощ.
Здравейте
Не ми се показва outfit и shoes в изхода на кода.
Не знам какъв е проблема?
Нуждая се от помощ.
Проблеми дал Господ.
Да започнем с това, че броят затварящи скоби трябва да е равен на този на отворените.
След 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.
Весела вечер и успех!
Ето това е моето решение: https://pastebin.com/QRscDyGk
благодаря за помощта.
Добра новина, много добра
2048