Прошу помочь с возвращающимися функциями в с++

Здравствуйте, при написании кода для игры в спички возникла проблема возврата значений из функции. В теории все должно быть хорошо, на практике же горстка спичек остается не изменой хотя и в функции отсутствует прописка void и return на конце стоит. К тому же цикл for продолжает работать даже после выхода из разрешенного диапазона для него.

#include <iostream>

using namespace std;
first_turn(int Sp){
    cout<<"Первый игрок берет:";
    int sp1;
    cin>>sp1;
    Sp-=sp1;
    if(Sp>0){
        cout<<"В стопке осталось:"<<Sp<<endl;
    }else{
    cout<<"1-ый игрок забрал последнюю спичку! Победа его!"<<endl;}
    return Sp;
}
Second_turn(int Sp){
    cout<<"Второй игрок берет:";
    int sp2;
    cin>>sp2;
    Sp-=sp2;
    if(Sp>0){
        cout<<"В стопке осталось:"<<Sp<<endl;
    }else{
    cout<<"2-ой игрок забрал последнюю спичку! Победа его!"<<endl;}
    return Sp;
}

int main(){
    setlocale(0,"");
 cout<<"Игра спички. Правила: есть 14 спичек, два игрока ходят по очереди и берут" <<endl<< "от одной до 3 спичек за раз. Цель: взять последнюю спичку"<<endl;
 cout<<endl;

 for(int S=14;S>0;){
        first_turn(S);
        Second_turn(S);
        int x=0;
        x+=1;
 }

Пожалуйста, скажите, что нужно сделать для исправления?

В main(), в цикле For присваивать S значение, которое возвращают функции first_turn(S) и Second_turn(S)
for(int S=14;S>0;)
{
S = first_turn(S);
if (S > 0)
{
S = Second_turn(S);
}
//int x=0;
//x+=1;
}

В main(), в цикле For присваивать S значение, которое возвращают функции first_turn(S) и Second_turn(S)
for(int S=14;S>0;)
{
S = first_turn(S);
if (S > 0)
{
S = Second_turn(S);
}
//int x=0;
//x+=1;
}

В main(), в цикле For присваивать S значение, которое возвращают функции first_turn(S) и Second_turn(S). Например,
for(int S=14;S>0;)
{
S = first_turn(S);
if (S > 0)
{
S = Second_turn(S);
}
//int x=0;
//x+=1;
}

return в функциях стоит, но тип возвращаемой переменной, перед названием функции функций отсутствует.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.