2015-07-20 5 views
-2

Я новичок в C++, и я не могу понять, почему код останавливается, как только пользователь вводит либо RecPrisim, TriPrisim, либо Cylinder, программа останавливается, выдает некоторые случайные числа и закрывает. Мне просто интересно, если это потому, что переменные должны быть числами, но я попытался сделать то же самое, используя Strings, и у меня появились ошибки.Не знаете, почему код не читается?

#include <iostream> 
#include <string> 
#include <vector> 
#include <cmath> 
using namespace std; 

int main() 
{ 
    int Length; 
    int Height; 
    int Base; 
    int Width; 
    int UserChoice; 
    int ObjectResult; 

    int RecPrisim; 
    int TriPrisim; 
    int Cylinder; 
    int TriResulta; 

    RecPrisim = 1; 
    TriPrisim = 1; 
    Cylinder = 1; 
    TriResulta = 1; 

    cout << "Choose one: RecPrisim, TriPrisim or Cylinder." << endl; 
    cin >> UserChoice; 

    if (UserChoice = RecPrisim) 
    { 
     cout << "Enter Length, Width then Height."; 
     cin >> Length; 
     cin >> Width; 
     cin >> Height; 

     ObjectResult = Length*Width*Height; 
     cout << ObjectResult; 
    } 
    else if (UserChoice = TriPrisim) 
    { 
     cout << "Enter Base, Height, Width, Length." << endl; 
     cin >> Base; 
     cin >> Height; 
     cin >> Width; 
     cin >> Length; 

     ObjectResult = Base*Height/2 * Width*Length; 
     cout << ObjectResult; 
    } 
    else if (UserChoice = Cylinder) 
    { 
     cout << "Enter Radius and Length." << endl; 
     cin >> Base; 
     cin >> Height; 

     ObjectResult = 3.1459*Base*Base*Height; 
     cout << ObjectResult; 
    } 

    system("pause"); 
} 
+3

использовать '==' вместо '=' !! – liaK

+3

Включите все предупреждения компилятора. –

+0

Нишант, хотя это была одна из проблем (ив только делал C++ в течение двух дней). Я также понял, что после того, как я разместил вопрос, который я присвоил 1 переменным из TriPrisim ect, и поэтому набрав TryPrisim, поскольку UserChoice не собирался работа, и вместо этого мне пришлось набрать 1. Спасибо за помощь: D –

ответ

4

== Используйте вместо =.

В C++, C и многих других языках == предназначен для сравнения значений, тогда как = предназначен для назначения значений.

Если вы хотите инициализировать переменную, скажите test со значением val, тогда вы должны использовать test = val.

Но в if условиях вы (обычно) хотите сравнить значения с помощью оператора сравнения, как следующего

  • == для сравнения ли LHS равна РИТОГО
  • > для сравнения ли LHS больше РИТОГО
  • < для сравнения ли LHS меньше RHS

База d на значения, которые оператор либо вернет true, либо false, и условие if будет либо выполнено, либо нет.

Поскольку, похоже, в вашем случае вы хотите сравнить значение UserChoice с другим значением для равенства, вы должны использовать == вместо =.

1

== Пожалуйста, используйте, а не = .FOR пример, Кодекса if(a = 1) будет всегда верно независимо от того, какое значение а, потому что if(1) всегда верно. Только код if(a == 1) - это то, что вы хотите. Я надеюсь это тебе поможет.

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