Во-первых, я новичок в программировании, поэтому заранее извиняюсь, если мой вопрос кажется основным!Array не принимает полный номер
Я пытаюсь построить игру коров и быков, в которой я храню случайный 9-разрядный код (между 0-1) в одном массиве и проверяю его на другой массив, который пользователь ввел. Затем программа выводит правильные цифры в нужном месте, как быки, и правильные цифры в неправильном месте, как коровы.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я ввожу число, которое нужно сопоставить с секретным кодом, мне нужно нажать enter после каждой цифры, чтобы он был правильно введен. Например, когда я ввожу следующее:
010101010 возвращается как 1010101010
000000001 возвращается как 1
000000000 возвращается как 0
Как вы можете видеть, 1-х, кажется, штраф, но 0 не выбраны, если они являются первой цифрой.
Here is the code:
#include <iostream>
#include <ctime>
using namespace std;
void gameOne();
void gameTwo();
void gameThree();
void getthemagicnumber(int magicnoarray[], int size);
void gettheplayernumber(int usernoarray[], int size);
void checkthenumbers(int magicnoarray[], int usernoarray[], int size);
int main()
{
int menuChoice = 0;
cout << " //////////////////////////\\\\\\\\\\\\\\\\\\\\\\\n"
" // Welcome to bulls and cows \\\n"
" // Where everything is not quite as it seems \\\n"
" // Press 1 to play me \\\n"
"// Press 2 to let me play \\\n"
"\\ Press 3 to play me with a twist //\n"
" \\ Press 4 to exit //\n"
" \\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////\n" << endl;
cin >> menuChoice;
switch (menuChoice) // menu select
{
case 1:
gameOne();
break;
case 2:
gameTwo();
break;
case 3:
gameThree();
break;
default:
cout << "Thanks for playing, have a great day!" << endl;
}
}
void gameOne()
{
int magicnoarray[9], usernoarray[9];
int size = 9;
srand((unsigned)time(NULL));
getthemagicnumber(magicnoarray, size);
gettheplayernumber(usernoarray, size);
// checkthenumbers(magicnoarray, usernoarray, size);
// display the results;
// do the above until either bulls = 9 OR
// number of goes = 7, or whatever you want
cout << "your guess was: ";
for (int i = 0; i < 9; i++)
{
cout << usernoarray[i]<<" ";
}
cout << endl;
cout << "my guess was: ";
for (int i = 0; i < 9; i++)
{
cout << magicnoarray[i] << " ";
}
cout << endl;
}
void getthemagicnumber(int array[],int size)
{
for (int i = 0; i < 9; i++)
{
array[i] = rand() %2;
}
};
void gettheplayernumber(int array[], int size)
{
for (int i = 0; i < size; i++)
{
cout << "Please enter your guess: ";
cin >> array[i];
}
};
void gameTwo()
{
};
void gameThree()
{
};
Заранее благодарю вас за помощь, это очень ценно!
Несвязанный: я использовал бы параметр 'size' в' getthemagicnumber' для чего-то, кроме занимающего место в стеке активации, поскольку вы столкнулись с проблемой передачи его и всего. Что касается вашей проблемы. вам необходимо обработать входную строку по одному символу за раз. – WhozCraig