У меня проблемы с заявлениями if - PullRequest
0 голосов
/ 12 марта 2020

Я продолжаю получать сообщения об «ожидаемом инициализаторе до« если »» Мне было интересно, может ли кто-нибудь помочь мне с этой проблемой? У меня есть домашнее задание, которое в основном просит вас запустить игру «Каменные ножницы» с 2 игроками.

#include <iostream>

int main()
{
  int x, y;

  std::cout << "Player 1 enter rock(1), paper(2), scissors(3):";
  std::cin >> x;
  std::cout << "Player 2 enter rock(1), paper(2), scissors(3):";
  std::cin >> y;
}
if ( x==1 ) and ( y==2 ) {
  std::cout << "Player 2 Wins! Paper Covers Rock!!\n";
}
else if ( x==1 ) and ( y==3 ) {
  std::cout << "Player 1 Wins! Rock Breaks Scissors!!\n";
}
else if ( x==1 ) and (x==1) {
  std::cout << "Tie with rock!\n";
}
else if ( x==2 ) and ( y==3 ) {
  std::cout <<  "Player 2 Wins! Scissors Cut Paper!!\n";
}
else if ( x==2 ) and ( y==1 ) {
  std::cout << "Player 1 wins! Paper Covers Rock!!\n";
}
else if ( x==2 ) and ( y==2 ) {
  std::cout << "Tie with Paper!\n"; 
}
else if ( x==3 ) and ( y==1 ) {
  std::cout << "Player 2 wins! Rock Breaks Scissors!!\n";
}
else if ( x==3 ) and ( y==2 ) {
  std::cout << "Player 1 wins! Scissors Cut Paper!!\n";
}
else if ( x==3 ) and ( y==3 ) {
  std::cout << "Tie with Scissors!";
}
else if (x>3){
 std::cout << "Invalid move!!\n";
}
else if (y>3){
  std::cout << "Invalid move!!\n";
}
return 0
}

Ответы [ 4 ]

2 голосов
/ 12 марта 2020

Удалить закрывающую скобку

int main()
{
  int x, y;

  std::cout << "Player 1 enter rock(1), paper(2), scissors(3):";
  std::cin >> x;
  std::cout << "Player 2 enter rock(1), paper(2), scissors(3):";
  std::cin >> y;
}  // <===

И выражения в операторах if должны быть заключены в круглые скобки, такие как

if ( ( x==1 ) and ( y==2 ) ) {
2 голосов
/ 12 марта 2020

Весь код должен быть в {} скобках функции main.

if код должен иметь () круглые скобки, охватывающие все выражение. Так что if ((x == 1) && (x == 2)) { ... } вместо if (x == 1) && (x == 2) { ... }.

Кроме того, используйте && вместо and и || вместо or.

0 голосов
/ 12 марта 2020

«Ошибка отступа» Просто поместите закрывающую скобку главной функции соответствующим образом в конце.

int main() 
{

//all your logic here
. 
. 

} // closing brace

Вы получили ошибку инициализации, потому что вы закрыли основную скобку перед условием if, поэтому он не знает, с каким значением вы инициализировали x или y.

0 голосов
/ 12 марта 2020
#include <iostream>
using namespace std;
int main()
{
  int x, y;

  cout << "Player 1 enter rock(1), paper(2), scissors(3):";
  cin >> x;
  cout << "Player 2 enter rock(1), paper(2), scissors(3):";
  cin >> y;

if ( x == 1  &&  y == 2 ) {
  cout << "Player 2 Wins! Paper Covers Rock!!\n";
}
else if ( x == 1  &&  y == 3 ) {
  cout << "Player 1 Wins! Rock Breaks Scissors!!\n";
}
else if ( x == 1  && y == 1) {
  cout << "Tie with rock!\n";
}
else if ( x == 2  &&  y == 3 ) {
  cout <<  "Player 2 Wins! Scissors Cut Paper!!\n";
}
else if ( x == 2  &&  y == 1 ) {
  cout << "Player 1 wins! Paper Covers Rock!!\n";
}
else if ( x == 2  &&  y == 2 ) {
  cout << "Tie with Paper!\n"; 
}
else if ( x == 3  &&  y == 1 ) {
  cout << "Player 2 wins! Rock Breaks Scissors!!\n";
}
else if ( x == 3  &&  y == 2 ) {
  cout << "Player 1 wins! Scissors Cut Paper!!\n";
}
else if ( x == 3  &&  y == 3 ) {
  cout << "Tie with Scissors!";
}
else

  cout << "Invalid move!!\n";

return 0;
}

Я попросил моего профессора помочь мне, но спасибо за помощь, ребята !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...