C++ 二维传递(缺少下标,未知大小)

C++ 二维传递(缺少下标,未知大小),c++,c++11,visual-c++,C++,C++11,Visual C++,我经常遇到下标丢失和大小未知的问题。所以,我猜这是一个初学者的问题,但我不能得到我的头围绕它。我如何让我的功能工作并输出到屏幕上 我试图用数字填充两列。列[0]由rand()输入,然后通过公式将列[1]转换为新的数字。我希望输入1-10行 // function prototypes void arrayProgram(double ma[][2], int xSize); int main() { const int arraySize = 5; double ma[arraySize][a

我经常遇到下标丢失和大小未知的问题。所以,我猜这是一个初学者的问题,但我不能得到我的头围绕它。我如何让我的功能工作并输出到屏幕上

我试图用数字填充两列。列[0]由rand()输入,然后通过公式将列[1]转换为新的数字。我希望输入1-10行

// function prototypes
void arrayProgram(double ma[][2], int xSize);

int main()
{
const int arraySize = 5;
double ma[arraySize][arraySize];
// if I change double ma[1][2]; 
// I get an argument of type 'int' is incompatible of type "double(*)[2]

arrayProgram(ma, arraySize);
}//end main

void arrayProgram(double ma[][2], int xSize)
{

    int i = 0;

    for (i = 0; i < xSize; ++i)
    {
        ma[i][0] = rand();
        ma[i][1] = (ma[i][0] * (20 / 25.0) + 64);
    }

}
//函数原型
无效数组程序(双ma[][2],int-xSize);
int main()
{
常数int arraySize=5;
双ma[排列大小][排列大小];
//如果我更改双ma[1][2];
//我得到一个'int'类型的参数与'double(*)类型不兼容[2]
阵列程序(ma,阵列化);
}//端干管
无效数组程序(双ma[][2],int-xSize)
{
int i=0;
对于(i=0;i
它可以工作:

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

using namespace std;

// function prototypes
void arrayProgram(double ma[][2], int xSize);

int main()
{
const int arraySize = 1;
double ma[arraySize][2];

srand ( time(NULL) ); // setting seed value
rand(); // first random number

arrayProgram(ma, arraySize);
}//end main

void arrayProgram(double ma[][2], int xSize)
{
    int i = 0;
    for (i = 0; i < xSize; ++i)
    {
        ma[i][0] = rand();
        ma[i][1] = (ma[i][0] * (20 / 25.0) + 64);
        std::cout << ma[i][0] << '\t' << ma[i][1] << std::endl;
    }
}
#包括
#包括
#包括
使用名称空间std;
//功能原型
无效数组程序(双ma[][2],int-xSize);
int main()
{
常数int arraySize=1;
双ma[arraySize][2];
srand(time(NULL));//设置种子值
rand();//第一个随机数
阵列程序(ma,阵列化);
}//端干管
无效数组程序(双ma[][2],int-xSize)
{
int i=0;
对于(i=0;istd::cout“我如何让我的函数工作”很好,其中一件事是编辑你的帖子,告诉我们它显示了什么行为以及你期望的行为。代码将要编译吗?函数声明中的类型在哪里?@bOK数组必须至少声明为双ma[1][2];
double-ma[arraySize][arraySize;
解析为
双ma[5][5];
数组程序
需要
双ma[@bOK您应该首先发布给出错误的确切代码(如果您仍然没有准确编译您发布的内容,现在就去做,并检查错误消息是否相同)它的编译是另一回事。<代码> RAND 的结果将是相同的。C中调用的结果与调用<代码> SRAND(1)相同。现代C++标准对主题没有多大的说明,因此我假设C是HORD。谢谢。我改变了答案。