-6

私はこの問題で立ち往生しており、本当に助けが必要です。関数 void f(int *a, int m, int n) があり、ポインターを使用してすべての要素を出力する必要があります。私は試した

for(i = 0; i < m; ++i)
        for(j = 0; j < n; ++j)
            cout << *((a+i)+j);

しかし、正しい要素を出力しません。私を助けてください。

メイン関数で行列を宣言し、要素を読み取ります。

int col, rand, i, j;
    int a[100][100];
    cout << " col = ";
    cin >> col;
    cout << " rand = ";
    cin >> rand;

    for(i = 0; i < rand; ++i)
        for(j = 0; j < col; ++j)
    {
        cout << "a[" << i << "]" << "[" << j << "] = ";
        cin >> *(*(a+i)+j);
    }

メイン関数から要素を印刷しようとすると、すべて問題ありません。

for(i = 0; i < rand; ++i)
        for(j = 0; j < col; ++j)
            cout << *(*(a+i)+j);

f(*a, col, rand); // function calling in the main function
4

1 に答える 1

2

試す

cout << *(a+i*(p+1)+j);

しかし、私は以下もうまくいくと思います。m(とnvsrとの関係をp明確にする必要があります。

for(i = 0; i <= r; ++i)
    for(j = 0; j <= p; ++j)
        cout << *a++;
于 2013-05-26T21:11:41.953 に答える