2017-01-26 5 views
-1

Rookie Question! Когда я запускаю это, и я ставлю число гостей как 2, у меня должно быть 2 маленьких пиццы, потому что число не больше 3 (чтобы сделать его средним), и когда я его запускаю, он сообщает мне 0 для всех размеров. Ошибка округления? Как это исправить? --Русский, пожалуйста, я новичок :)Добавление ошибки, простые вопросы

#include <iostream> 
#include <iomanip> 
#include <cmath> 

using namespace std; 

int main() 
{ 
    //promt user 
    cout << "Please enter number of guests:"; 
    int attendees; 
    cin >> attendees; 

    int large_pizzas = attendees/7 ; 
    cout << "purchase " << large_pizzas << " large pizzas" << endl; 

    int medium_pizzas = large_pizzas % 3 ; 
    cout << "purchase " << medium_pizzas << " medium pizzas" << endl; 

    int small_pizzas = medium_pizzas % 1 ; 
    cout << "purchase " << small_pizzas << " small pizzas" << endl; 
+5

Шаг через него в отладчике. И подумайте о том, что означает '% 1'. –

ответ

0

Может быть, вы можете настроить, как вы хотите:

#include <iostream> 

#define LARGE_PIZZA_SHARE 7  // 7 persons can share 1 large pizza 
#define MEDIUM_PIZZA_SHARE 3 // 3 persons can share 1 medium pizza 
#define SMALL_PIZZA_SHARE 1  // 1 person - 1 small pizza 

int main() 
{ 
    int attendees = 0; 
    cout << "Enter number of attendees: "; 
    cin >> attendees; 

    int largePizzaCount = 0; 
    int mediumPizzaCount = 0; 
    int smallPizzaCount = 0; 

    if (attendees >= LARGE_PIZZA_SHARE) 
    { 
     largePizzaCount = attendees/LARGE_PIZZA_SHARE; 
     attendees = attendees % LARGE_PIZZA_SHARE; 
    } 

    if (attendees >= MEDIUM_PIZZA_SHARE) 
    { 
     mediumPizzaCount = attendees/MEDIUM_PIZZA_SHARE; 
     attendees = attendees % MEDIUM_PIZZA_SHARE; 
    } 

    if (attendees >= SMALL_PIZZA_SHARE) 
    { 
     smallPizzaCount = attendees/SMALL_PIZZA_SHARE; 
    } 

    cout << "You require: " << largePizzaCount << " large pizzas, " << mediumPizzaCount << " medium pizzas, and " << smallPizzaCount << " small pizzas!" << endl; 

    return 0; 
} 
+0

ты потрясающий! – h20Pohlow

0

Исключена ошибка. Результат 2/7 не является целым числом, поэтому он был добавлен к целому числу. В C++ действие cast просто удаляет все вещи после «.», Скажем, 0.32 не является целым числом, C++ передает его целому числу, результат равен 0. Что касается «%», результат тоже правильный, вы должны знать что "%".

Смежные вопросы