-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( andnrand之间的关系p需要澄清。

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