Loading...
dmartinov avatar dmartinov 37 Точки

Задача New House от Programing Basics with C++

Разписах задачата по всевъзможни начини, но не успявам да взема повече от 50 точки, а всички примерни входове и изходи минават. Преглеждам я вече за n-ти път и мисля, че се нуждая от едно рамо. Във всички варианти в които я разписах, все едни и същи резултати получвам, което ме навежда на мисълта, че може би някъде в изчисленията нещо бъркам. Може би е нещо съвсем елементарно, но вече тотално зациклих. Условието е следното:

Нели толкова много обича цветята, че Ви убеждава да напишете програма която да изчисли колко  ще им струва, да си засадят определен брой цветя и дали наличния бюджет ще им е достатъчен. Различните цветя са с различни цени.

цвете

Роза

Далия

Лале

Нарцис

Гладиола

Цена на брой в лева

5

3.80

2.80

3

2.50

Съществуват следните отстъпки:

  • Ако Нели купи повече от 80 Рози - 10% отстъпка от крайната цена
  • Ако Нели купи повече от 90  Далии - 15% отстъпка от крайната цена
  • Ако Нели купи повече от 80 Лалета - 15% отстъпка от крайната цена
  • Ако Нели купи по-малко от 120 Нарциса - цената се оскъпява с 15%
  • Ако Нели Купи по-малко от 80 Гладиоли - цената се оскъпява с 20%

 

От конзолата се четат 3 реда:

  • Вид цветя - текст с възможности - "Roses", "Dahlias", "Tulips", "Narcissus", "Gladiolus"
  • Брой цветя - цяло число в интервала [10…1000]
  • Бюджет - цяло число в интервала [50…2500]

Да се отпечата на конзолата на един ред:

  • Ако бюджета им е достатъчен - "Hey, you have a great garden with {броя цвета} {вид цветя} and {останалата сума} leva left."
  • Ако бюджета им е НЕ достатъчен - "Not enough money, you need {нужната сума} leva more."

Сумата да бъде форматирана до втория знак след десетичната запетая.

 

#include <iostream>
#include <string>

using namespace std;

int main() {

    string flowers;
    int countFlowers, budget;

    cin >> flowers >> countFlowers >> budget;

    double priceFlowers = 0;

    if (flowers == "Roses") {
        priceFlowers = countFlowers * 5;
    } else if (flowers == "Dahlias") {
        priceFlowers = countFlowers * 3.80;
    } else if (flowers == "Tulips") {
        priceFlowers = countFlowers * 2.80;
    } else if (flowers == "Narcissus") {
        priceFlowers = countFlowers * 3;
    } else if (flowers == "Narcissus") {
        priceFlowers = countFlowers * 3;
    } else if (flowers == "Gladiolus") {
        priceFlowers = countFlowers * 2.50;
    }

    double price = priceFlowers;

    if (flowers == "Roses" && countFlowers > 80) {
            price = priceFlowers * 0.90;
        } else if (flowers == "Dahlias" && countFlowers > 90) {
            price = priceFlowers * 0.85;
        } else if (flowers == "Tulips" && countFlowers > 80) {
            price = priceFlowers * 0.85;
        } else if (flowers == "Narcissus" && countFlowers < 120) {
            price = priceFlowers * 1.15;
        } else if (flowers == "Gladiolus" && countFlowers < 80) {
            price = priceFlowers * 1.20;
        }

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

    if (price < budget) {
        double enoughMoney = budget - price;
        cout << "Hey, you have a great garden with " << countFlowers << " " << flowers << " and " << enoughMoney << " leva left." << endl;
    } else {
        double notEnoughMoney = price - budget;
        cout << "Not enough money, you need " << notEnoughMoney << " leva more." << endl;
    }

    return 0;
}

Тагове:
0
Programming Basics 26/06/2019 10:35:54
RuNNeR4142 avatar RuNNeR4142 396 Точки
Best Answer

if (price <= budget) {   ако парите са точно колкото трябват значи са достатъчни

0
dmartinov avatar dmartinov 37 Точки

Оле, оле, оле....винаги съм го казвал - една грешна запетая = 3 безсънни нощи :D

Благодаря ти! :)

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