0

所以我有这个代码:

// ConsoleApplication2.cpp : Defines the entry point for the console application.
//

#include <iostream>
#include <ctime>
#include <stdio.h>

using namespace std;


int main()
{
    int bankDeposit();
    void game();
    void checkVictorySum(int gameFieldCheck[3][3]);

    int totalDeposit = 0;

    int gameField;

    cout << "Welcome to the slot machine, bet a sum and win money depending on the number of equal rows." << endl;
    totalDeposit = bankDeposit();
    game();
    return 0;
}

int bankDeposit()
{
    int deposit = 0;
    int betAbleMoney = 0;

    bool correctDeposit = false;
    bool endOfFunction = false;
    bool incorrectAnswer = true;

    char wantToDepositMore = 'Y';

    while (!endOfFunction)
    {

        while (wantToDepositMore == 'Y')
        {
            while (!correctDeposit)
            {
                cout << "How much money do you want to deposit? " << endl;
                cin >> deposit;

                if (cin.fail())
                {
                    cin.clear();
                    cin.ignore();
                    cout << "That's an incorrect input" << endl;
                }

                else
                {
                    correctDeposit = true;
                }
            }
            betAbleMoney += deposit;
            cout << "You have deposited a total of " << betAbleMoney << " Euro" << endl;
            incorrectAnswer = true;

            while (incorrectAnswer)
            {
                cout << "Do you want to deposit more money? (Y/N)" << endl;
                cin >> wantToDepositMore;

                if (cin.fail())
                {
                    cin.clear();
                    cin.ignore();
                    cout << "That's an incorrect input" << endl;
                    incorrectAnswer = true;
                }

                else
                {
                    incorrectAnswer = false;
                }

                if (wantToDepositMore != 'N' && wantToDepositMore != 'Y')
                {
                    incorrectAnswer = true;
                    cout << "That's an incorrect input " << endl;
                }

                else
                {
                    if (wantToDepositMore == 'N')
                    {
                        endOfFunction = true;
                    }

                    else
                    {
                        correctDeposit = false;
                        deposit = 0;
                    }
                }               
            }                       
        }       
    }
    return betAbleMoney;
}

void game()
{
    void checkVictorySum(int gameFieldCheck);
    srand(time(0));
    int gameField [3][3];
    char mainGameField [3][3];

    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            gameField[i][j] = rand() % 3 + 1;
        }
    }
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            if (gameField[i][j] == 1)
            {
                mainGameField [i][j] = 'x';
            }

            if (gameField[i][j] == 2)
            {
                mainGameField [i][j] = 'o';
            }

            if (gameField[i][j] == 3)
            {
                mainGameField [i][j] = '*';
            }
            cout << mainGameField[i][j];
        }
        cout << endl;
    }
    checkVictorySum(gameField[3][3]);
}

void checkVictorySum(int gameField[3][3])
{
    int rows = 0;
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            cout << gameField[i][j];
            cout << endl;
        }

    }
}

我希望 checkVictorySum 能够使用游戏中的二维数组。我不只检查同一个函数中的所有内容的原因是,在我们的分配中,我们需要有 3 个函数。

任何帮助将不胜感激。//比约恩

4

3 回答 3

0

我猜你会得到关于隐式声明函数的错误,以及与其声明不匹配的函数。原因是 C++ 中的所有内容都需要在使用之前声明。

在您的情况下,这可以通过在调用函数之前放置函数定义或通过制作函数原型(这是函数的声明)来完成。

于 2013-10-17T09:13:36.197 回答
0

您的问题与传递 2 dim 数组无关,因为它有效:

void func(int arr[3][3])
{
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            arr[i][j] = 0;
        }
    }
}

int main()
{
    int arr[3][3] = {0};

    func(arr);
}

请注意,当用作函数参数时,数组会衰减为指针,这意味着维度值会丢失。因此,您要么必须知道数组的大小,要么将尺寸与数组一起传递给函数

于 2013-10-17T09:17:16.173 回答
0

您需要将函数原型移出main().

int bankDeposit();
void game();
void checkVictorySum(int gameFieldCheck[3][3]);

int main()
{
    ...
}
于 2013-10-17T09:23:22.817 回答