4

我正在做一个程序,我正在将矩阵相乘,但我的大问题是将输入转换为我最终将相乘的两个数组。以下是我的转换代码,包括数组的声明。(我删除了输入是 8 个有效浮点数的验证,因为我一直在调试它)。

    //declare the arrays
float a[2][2];
float b[2][2];
float c[2][2];

int main (int argc, char *argv[])
{
    int i,j,k,l;

    i=0;
    l=4;
// declare and initialize arrays
   for( j =0; j<2; j++)
   {
       for(k=0;k<2; k++)
       {
           a[j][k]=atof[argv[i]];
           b[j][k]=atof[argv[l]];
           i++;
           l++;
       }
   }
......

在编译时使用 atof 时出现错误:“下标值既不是数组也不是指针”我一直在查找错误,但还没有弄清楚在我的情况下它意味着什么。

4

4 回答 4

4

我认为您想要的是以下内容:

a[j][k]=atof(argv[i]);

注意使用()而不是[]围绕argv[i]-atof是一个函数,而不是一个数组。

于 2011-03-09T05:58:04.687 回答
2

atof是一个函数 - 您可以使用()而不是下标运算符来调用函数[]

 a[j][k] = atof(argv[i]);

我认为这是一个错字 - 也许改变你的字体?

于 2011-03-09T05:58:27.837 回答
1

采用

atof(argv[i])

代替

atof[argv[i]]

[]注意和之间的区别()

于 2011-03-09T05:57:13.000 回答
1

atof是一个函数,所以你应该使用atof(argv[i]);

于 2011-03-09T05:57:14.277 回答