从打印功能打印2d数组的问题

时间:2015-07-23 22:29:45

标签: c++ function multidimensional-array

我试图用2d数组填充和打印,但每次我尝试编译它 说未声明的标识符c。并在打印功能中指向c处的箭头。 我尝试通过多种方式声明它,但由于某些原因它不起作用。

bar

2 个答案:

答案 0 :(得分:2)

写下面的方式

#include <iostream>

using namespace std;


const size_t ROWS = 25;
const size_t COLS = 25;

void print(char x[][COLS], size_t r )
{
    for ( size_t i  = 0; i < r; i++ )
    {
        for ( size_t j = 0; j < COLS; j++ )
        {
          cout << x[i][j]; 
        } 
        cout << endl;    
    } 
}

int main()
{
    char p[ROWS][COLS];

    for ( size_t i = 0; i < ROWS; i++ )
    {
        for ( size_t j = 0; j < COLS; j++ )
        {
            if ( i == 0 ) p[i][j] = 'x';
            else p[i][j] = 'o';
        }    
    }   

    print( p, ROWS );


    return(0);
}

另一种方法是按以下方式定义函数

void print( char ( &x )[ROWS][COLS] )
{
    for ( size_t i  = 0; i < ROWS; i++ )
    {
        for ( size_t j = 0; j < COLS; j++ )
        {
          cout << x[i][j]; 
        } 
        cout << endl;    
    } 
}

并将其称为

    print( p );

答案 1 :(得分:0)

试试这个:

#include <iostream>

using namespace std;

void print(char x[25][25])
{
    for(int r  = 0; r < 25; r++)
    {
        for(int c = 0; c < 25; c++)
        {
          cout << x[r][c]; 
        } 
        cout << endl;    
    } 
}

int main()
{
    char p[25][25];

    for(int r = 0; r < 25; r++)
    {
        for(int c = 0; c < 25; c++)
        {
            if(r==0)p[r][c]='x';
            else    p[r][c]='o';
        }    
    }   

    print(p);

    return(0);
}