将2D数组传输到另一个,将数字分成两部分

时间:2014-03-23 17:25:34

标签: c++ arrays multidimensional-array

我有以下任务: 用户输入了一个数组 - A [m] [n];将此数组转换为新数组,仅保留奇数行,每个元素应分成两行。 我知道它很简单,但无法弄清楚如何去做,所以请伸出援助之手。 附:数组应该是指针 P.S.S.该计划应如下工作。 如果为exaple输入了这个数组:
1 2 3 4 5
5 4 3 2 1
9 2 3 5 1
2 3 4 6 7
然后应该输出这个 0.5 1 1.5 2 2.5
4.5 1 1.5 2.5 0.5

所以,我没有指针就做了,但是使用指针重新制作它有问题。他们将如何更改以下代码?

 #include <iostream>

using namespace std;



int main()
{
    int m,n;
    cin>>m>>n;
    int matrix[m][n];

    for(int x=0; x<m; x++)
    {
        for(int y=0; y<n; y++)
        {
            cin>>matrix[x][y];

        }
    }



    for(int x=0; x<m; x=x+2)
    {
        for(int y=0; y<n; y++)
        {
            cout<<(matrix[x][y])/2<<" ";

        }
        cout<<endl;
    }

    return 0;
}

1 个答案:

答案 0 :(得分:0)

感谢您付出一些努力!

关于你的“......有问题要用指针重新制作”

改变 matrix[x][y]*(*(matrix+x)+y)

此外,由于您需要小数值,请使用2.0进行分割

cout << *(*(matrix+x)+y)/2.0 << " " ;

有关这些表示的详细信息,请参阅一本好书或在SO

上搜索