Помощ със задача на C++//4.Нов дом
Здравейте,може ли да ми кажете къде греша в кода си?Това е задачата.
Марин и Нели си купуват къща не далеч от София. Нели толкова много обича цветята, че Ви убеждава да напишете програма която да изчисли колко ще им струва, да си засадят определен брой цветя и дали наличния бюджет ще им е достатъчен. Различните цветя са с различни цени.
цвете |
Роза |
Далия |
Лале |
Нарцис |
Гладиола |
Цена на брой в лева |
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."
Сумата да бъде форматирана до втория знак след десетичната запетая.
Примерен вход и изход
Вход |
Изход |
Обяснения |
|
Roses 55 250 |
Not enough money, you need 25.00 leva more. |
Нели иска 55 броя Рози. Цената на една роза е 5лв., следователно за 55 броя Нели ще трябва да плати: 55 * 5 = 275. Тя обаче разполага с 250 лв. бюджет. |
|
Вход |
Изход |
Вход |
Изход |
Tulips 88 260 |
Hey, you have a great garden with 88 Tulips and 50.56 leva left. |
Narcissus 119 360
|
Not enough money, you need 50.55 leva more. |
#include <iostream>
#include <string>
using namespace std;
int main() {
string flowers;
cin >> flowers;
int quantity, budget;
cin >> quantity >> budget;
double priceflower = 0;
if (flowers == "Roses") {
priceflower = 5;
}
else if (flowers == "Dahlias") {
priceflower = 3.80;
}
else if (flowers == "Tulips") {
priceflower = 2.80;
}
else if (flowers == "Narcissus") {
priceflower = 3;
}
else if (flowers == "Gladiolus") {
priceflower = 2.50;
}
double totalprice = quantity * priceflower;
if (quantity > 80 && flowers == "Roses") {
totalprice = totalprice - 0.10*totalprice;
}
else if (quantity > 90 && flowers == "Dahlias") {
totalprice = totalprice - 0.15*totalprice;
}
else if (quantity > 80 && flowers == "Tulips") {
totalprice = totalprice - 0.15*totalprice;
}
else if (quantity <120 && flowers == "Narcissus") {
totalprice = totalprice + 0.15*totalprice;
}
else if (quantity < 80 && flowers == "Gladious") {
totalprice = totalprice+ 0.20*totalprice; /
}
cout.setf(ios::fixed);
cout.precision(2);
if (budget >= totalprice){
double moneyleft = budget - totalprice;
cout << "Hey, you have a great garden with " << quantity <<" "<< flowers << " and "
<<moneyleft <<" leva left." << endl;}
else {
double moneymore = totalprice - budget;
cout << "Not enough money, you need "<<moneymore <<" leva more." << endl;
}
system("pause");
return 0;
}
Много благодаря,отново!
Аз бих заложил на четимостта и лесното дебъгване на кода, особено в начален курс като този. :)
Например: