1

2次元配列を含むC++プログラムで問題が発生しています。

プログラムの一部として、2つのテーブルをパラメーターとして受け取り、それらを追加して別のテーブルを返す関数を使用する必要があります。

私はこのようなことができると思いました:

int** addTables(int ** table1, int ** table2) 
{ 
    int** result;
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < columns; j++)
        {
            result[i][j] = table1[i][j] + table2[i][j]; 
        }
    }
    return result;
}

しかし、「for」ループのテーブルのサイズ(行と列)を見つける方法がわかりません。

誰かがこれを行う方法のアイデアを持っていますか?

これは私がテストしていたコードの一部ですが、正しい数の列と行を取得していません。

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main(int argc, char **argv) 
{
    const int n = 3; // In the addTables function I'm not supposed to know n.
    int **tablePtr = new int*[n]; // I must use double pointer to int.
    for (int i = 0; i < n; i++)
    {
        tablePtr[i] = new int[n];
    }

    srand((unsigned)time(0));
    int random_integer;

    for(int i = 0; i < n; i++) // I assign random numbers to a table.
    {
        for (int j = 0; j < n; j++)
        {
            random_integer = (rand()%100)+1;
            tablePtr[i][j] = random_integer;
            cout << tablePtr[i][j] << endl;
        }
    }   

    cout << "The table is " << sizeof(tablePtr) << " columns wide" << endl;
    cout << "The table is " << sizeof(tablePtr) << " rows long" << endl;

    return 0;
}

助けていただければ幸いです。C++は初めてです。

4

1 に答える 1