4

私は行列を乗算するプログラムを実行していますが、私の大きな問題は、入力から最終的に乗算する2つの配列に変換することです。以下は、配列の宣言を含む変換用の私のコードです。(デバッグしているので、入力が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は関数なので、使用する必要がありますatof(argv[i]);

于 2011-03-09T05:57:14.277 に答える
1

使用する

atof(argv[i])

それ以外の

atof[argv[i]]

との違いに注意して[]ください()

于 2011-03-09T05:57:13.000 に答える