如何将2d数组传递到c程序中?

如何将2d数组传递到c程序中?,c,arrays,C,Arrays,最新消息:现在似乎可以工作了 更新: 好的,这是我声明的2d数组: int数据[10][20] 它充满了这样的变量: k=0; 标记=strtok(str,“”); while(令牌!=NULL) { sscanf(令牌、%d、&var); 数据[k++][i]=var; 令牌=strtok(空,“”); } 因此,我们期望每个i都有数据[0-9][i]。然后我们找到我们需要使用的索引 数据[0-9][j] case 2: prinf("What experiment would you

最新消息:现在似乎可以工作了

更新:

好的,这是我声明的2d数组:
int数据[10][20]

它充满了这样的变量:
k=0;
标记=strtok(str,“”);
while(令牌!=NULL)
{
sscanf(令牌、%d、&var);
数据[k++][i]=var;
令牌=strtok(空,“”);
}

因此,我们期望每个i都有
数据[0-9][i]
。然后我们找到我们需要使用的索引

数据[0-9][j]

case 2:
    prinf("What experiment would you like to use?\n");
    token = strtok (NULL," ");
    sscanf (token, "%s", &str2);
    for(j=0;j<i;j++)
    {
        if(strcmp(experiments[j],str))
        {
            indAvg = individualAverage(data,j);
            printf("The individual average of %s is %d\n",experiments[j],indAvg);
            break;
        }
    }
案例2:
prinf(“您希望使用什么实验?\n”);
令牌=strtok(空,“”);
sscanf(令牌、%s、&str2);
对于(j=0;j
缺少j的数据类型。还需要通过至少指定列长度来传入2d数组的大小

int individualAverage(int data[][COL_LENGTH],int j)

我犯了一个错误。数据的大小在开始时声明为:
int data[10][20];
我知道第一个[10]中肯定有10个整数,但我不确定这10个整数将有多少组。这就是
int j
发挥作用的地方。那么在这种情况下,我应该如何准确地声明它呢?@user3251142:请更新问题,以包括有关数组声明的关键信息(理想情况下,从一开始就应该存在)。您需要澄清仅使用10个整数的含义。数组的类型-以及参数声明的正确形式-取决于数组的类型,而不是使用的值的数量。将其传递到函数中时,您仍然需要传递列长度。还可能重复:
int individualAverage(int data[][],j)
int individualAverage(int data[][COL_LENGTH],int j)