用户在C ++中选择的2D数组列

时间:2013-08-27 23:03:48

标签: c++ arrays multidimensional-array

我正在尝试编写一个C++程序,它将在运行时获取用户定义的列数并创建一个具有

的二维数组

列=在运行时给出
行= 3

我应该如何初始化行和列最初不是常量的2D数组。任何链接或教程帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找动态多维数组。 Googlefu应该提供帮助,导致这篇文章:

http://www.cplusplus.com/forum/beginner/63/

靠近底部。

答案 1 :(得分:0)

您向我们提供了一些信息,我猜您要求的是一个C ++代码,它首先从用户获取列号,然后根据公式计算行,最后创建一个二维数组,对吧?
给出的公式:行= 3

我为你编写了一个C ++代码

我已经在我的linux(ubuntu)平台上测试了这段代码,我希望这就是你所要求的。


#include <iostream>
#include<math.h>
#define kary 3 // Your k-ary truth table - 3 for ternary truth table(0,1,2), 2 for binary truth table(1,2)

using namespace std;
int main()
{
    int rows,cols,i,j;  // Variable declaration
    cout<<"\n Enter required number of columns =  ";
    cin>>cols;
    rows = pow(kary,cols);
    cout<<"\n Calculated number of rows =  "<<rows;
    int arr[rows][cols]; // Array declaration
    for (i=0; i<rows; i++)
    {
        for (j=0; j<cols; j++)
           arr[i][j]=((i/(int) pow(kary, j)) % kary); //logic
    }
    cout<<"\n Your array holds this data \n";
    for(i = 0; i < rows; i++)
    {
        for (j=cols-1; j>=0; j--)
            cout<<"\t"<<arr[i][j];
        cout<<"\n";
    }
    return 0;
}