Как вы можете видеть из следующего, int result
должно получить назначенное значение 1, если только int outcome
равно 7 или 11. Однако, хотя в моделировании я запустил outcome
было 9, оператор if выполнялся без изменений и присваивал значение result
как 1.Оператор if if выполняется, даже если условия не выполняются.
Проблема в том, что я не уверен, что не так, потому что другие коды в инструкции не работают, только результат integer получает присвоенное значение.
#include <iostream>
#include <algorithm>
#include <ctime>
#include <string>
using namespace std;
int main()
{
int bankroll=100;
int bet=1;
int die1[6]= {1,2,3,4,5,6};
int die2[6]= {1,2,3,4,5,6};
int outcome;
int point;
int result;
bool pointroll=false;
string resulttext;
random_shuffle(&die1[0],&die1[6]);
random_shuffle(&die2[0],&die2[6]);
outcome = die1[0] + die2[0];
cout << "The Outcome is " << outcome << endl;
cout << "The Result is " << result << endl;
if(outcome==7 || outcome==11)
{
resulttext="Win!";
result=1;
cout << "Am I running?" << endl;
}
cout << "The Outcome is " << outcome << endl;
cout << "The Result is " << result << endl;
return 0;}
Вот результат:
The Outcome is 9
The Result is 0
The Outcome is 9
The Result is 1
Edit: Я действительно не могу поверить, как я проглядел такую простую вещь. Во-первых, я не назначал начальное значение. Спасибо всем, вопрос решен.
Нет необходимости вносить изменения, которые говорят то же самое, что и ответы. Вот для чего нужны ответы. Вы указываете, что ответ правильный, приняв его. – Barmar
Совет. Включите достойный уровень предупреждений компилятора (например, '-Wall -Wextra -pedantic' для gcc и clang) и исправить все из них. Компилятор прямо сказал бы вам о проблеме. –
@Barmar Я фактически разместил редактирование перед проверкой ответов. Но ты прав. – SarpSTA