2015-09-11 3 views
-8

Привет, У меня есть простая программа cpp для отображения суммы денег, которую клиент должен заплатить, покупая пиццу. Код выглядит следующим образом. Но как-то сумма показывает 0 вместо правильного ответа. Кто-то, пожалуйста, помогите, действительно новичок в Cpp. Заранее спасибо.Программа Cpp работает не так, как ожидалось

#include <iostream> 
#include <string> 
using namespace std; 
const int price = 20; 

int main(){ 

    int radius = 0; 
    int area = (3.14)* (radius); 
    int amount; 
    amount = (area) * (price); 
    cout << " Enter the radius of the pizza u want \n"; 
    cin >> radius; 
    cout << " Please pay amount" << amount << " at the cashier" << endl; 
    cin.ignore(); 
    cin.ignore(); 
    return 0; 
} 
+0

Измените свой вопрос и добавьте свой код. –

+0

Извините. Забыл включить коды. –

+4

Сумма рассчитывается до изменения радиуса. –

ответ

1

Вы устанавливаете все свои ценности на 0 в начале. Попробуйте:

int radius: 

в самом начале, это создаст переменную, но не дать ей значение, то после cin >> radius; вы можете сделать в основном то, что вы были раньше:

cin >> radius; 
auto area = radius*radius * 3.14; 
auto amount = area * price; 

Или вы могли бы просто избавиться переменной area и просто сделать:

cin >> radius; 
auto amount = radius*radius * 3.14 * price; 

Заметим также, что площадь круга равна pi*r*r, а не pi*r. Более того, вы не должны вычислять, используя int s. В приведенном выше коде auto автоматически будет числом с плавающей запятой (double в этом случае, так как 3.14 является литералом double).

+0

Спасибо, это сработало :) –