Я создаю программу, которая сравнивает два массива; первый массив, пользователь вводит 5 целых чисел. второй массив, компьютер выбирает 5 чисел в случайном порядке (между 0 & 9 для обоих массивов).C++ необходимо обновить переменную
Мне нужно сравнить элементы каждого массива, чтобы увидеть, соответствуют ли они. если они совпадают, я добавляю 1 к переменной счетчика.
(например, пользователь вводит 0 2 2 9 6, компьютер [с помощью Rand] выбирает 2 3 2 9 0. elemnts 3 & 4 матча, так что то будет два. Теперь каждый матч имеет другой сценарий)
Мои Проблема: пользователь также вводит сколько раз они хотят сравнить эти массивы (это игра под названием pick 5). Мне нужен счетчик, чтобы сбросить до нуля каждый раз, когда он петли Я попытался использовать команду flush, но это не сработало.
любые идеи?
int main()
{
string name;
float total_amt, bet_amt, win_amt;
int play_amt, user_choice[5] = { }, com_choice[6], i, total=0;
int size = 5;
srand((unsigned)time(0));
cout<<"Welcome to pick 5, where the odds are never in your favor!"<<endl;
cout<<"What is your name?"<<endl;
cin>>name;
cout<<"How much money do you have?"<<endl;
cin>>total_amt;
cout<<"How much money would you like to bet?"<<endl;
cin>>bet_amt;
cout<<"How many times would you like to play?"<<endl;
cin>>play_amt;
for (i=0;i<play_amt;i++)
{
cout<<"Pick 5 integers between 0 & 9 "<<endl;
cin>>user_choice[0];
cin>>user_choice[1];
cin>>user_choice[2];
cin>>user_choice[3];
cin>>user_choice[4];
com_choice[0] = (rand()%9);
com_choice[1] = (rand()%9);
com_choice[2] = (rand()%9);
com_choice[3] = (rand()%9);
com_choice[4] = (rand()%9);
cout<<com_choice[0];
cout<<com_choice[1];
cout<<com_choice[2];
cout<<com_choice[3];
cout<<com_choice[4];
if (user_choice[0]==com_choice[0])
{
total++;
}
if (user_choice[1]==com_choice[1])
{
total++;
}
if (user_choice[2]==com_choice[2])
{
total++;
}
if (user_choice[3]==com_choice[3])
{
total++;
}
if (user_choice[4]==com_choice[4])
{
total++;
}
cout<<"User matched "<<total<<"times"<<endl;
// scenarios
if (total>=0 &&total<3)
{
total_amt-=bet_amt;
cout<<"Less than 3 of your numbers matched, tough luck"<<endl;
cout<<"You now have $"<<total_amt<<"dollars left."<<endl;
}
else if (total == 3)
{
cout<<"You matched 3 and broke even"<<endl;
}
else if(total == 4)
{
win_amt = bet_amt*2;
total_amt = total_amt + (win_amt - bet_amt);
cout<<"Congrats! you matched 4!!"<<endl;
cout<<"You now have $"<<total_amt<<"dollars!"<<endl;
}
else
{
win_amt = bet_amt*5;
total_amt = total_amt + (win_amt - bet_amt);
cout<<"WINNER WINNER YOU MATCHED 5!!"<<endl;
cout<<"You now have $"<<total_amt<<"dollars!"<<endl;
}
// end nested if-else
} // end for loop
} // end main
Не уверен, что я полностью понимаю, нет переменной, называемой «счетчик». Вы просто не хотите установить total = 0; в начале вашего цикла «for»? – OldProgrammer
Элементы начинаются с 0. –
Как говорится в ответе, перемещение переменной - это хороший способ. Если вы оказались в ситуации, когда вам нужно сбросить что-то по уважительной причине, 'var = {};' обычно делает это красиво. – chris