Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        5年前关闭。
                                                                                            
                
        
因此,此编译没有问题。我遇到的问题是,当它打印到控制台时,右下角有一个额外的列和一个奇怪的ascii字符。如果我尝试减小数组的大小,则无法再使用9个元素对其进行初始化-并且必须具有9个元素才能使其成为井字游戏板。我以为这是一个错误,但是如果是这样,我就不知道如何解决它。我已经读过很多类似的“井字游戏”问题,但它们似乎并没有相同的问题。

#include <iostream>

using namespace std;

int main ()
{
int countrow, countcol, play=1, subscript1, subscript2;
int ARRAY_ROWS = 3, ARRAY_COLS =3;
char board [3][3] = {{42, 42,42}, {42, 42,42}, {42, 42,42}};
char input;
while(play>0)
{
    for(countrow = 0; countrow<ARRAY_ROWS; countrow++)
    {
        for(countcol=0; countcol<ARRAY_COLS; countcol++)
        {
            cout<<board [countrow][countcol];
        }
        cout<<board[countrow][countcol];
        cout<<endl;
    }
cout<<"Player 1, enter your mark using a row column coordinate system.\n";
cin>>subscript1>> subscript2;
subscript1+=1;
board[subscript1][subscript2] = 88;
cout<<"Player 2, enter your mark using a row column coordinate system.\n";
cin>>subscript1>> subscript2;
board[subscript1][subscript2] = 79;
}
system("pause");
return 0;
}

最佳答案

这是问题所在:

for(countrow = 0; countrow<ARRAY_ROWS; countrow++)
{
    for(countcol=0; countcol<ARRAY_COLS; countcol++)
    {
        cout<<board [countrow][countcol];
    }
    cout<<board[countrow][countcol];
    //^^^^^This one is redundant and you are accessing invalid memory block
    //^^^^^^ countcol is out of bound
    cout<<endl;
}

08-04 07:39
查看更多