0

数値計算法の研究の一環として、ストリーム値の問題を解決する関数を作成しています。これはプログラムの「肉」ですが、多くの奇妙なエラーが発生します。これは、他のプログラムで同じコードをエラーなしで使用したため、奇妙です。

 void solve_stream(void)
    {
          double residual, residual_total;
        int resid_count, count=0;

        do
        {
            residual_total=0.0;
            resid_count=0;

            for(int i=0;i<maxi;i++)
                for(int j=0;j<maxj;j++)
                    if((i+j)%2==count%2)
                    {
                        residual= P[i][j]*e[i][j]-f[i][j];
                        if(i<maxi-1) residual+= P*[i+1][j]*a[i][j];
                        if(i>0) residual+= P[i-1][j]*b[i][j];
                        if(j<maxj-1) residual+= P[i][j+1]*c[i][j];
                        if(j>0) residual+= P[i][j-1]*d[i][j];

                        residual_total+= fabs(residual);
                        resid_count++;
                    }

            residual_total = residual_total/resid_count; //average residual
            count++;

            if(count%100==0) cout<<"-";
        }
        while(residual_total>1.0);
    }
  1. if(i'less than' maxi-1) で始まる 155 行目で、コンパイラは 'エラー C2143: 構文エラー : '+' の前に ']' がありません' を返します。

  2. 定義されたすべての変数に対して、「エラー C3493: デフォルトのキャプチャ モードが指定されていないため、'residual' を暗黙的にキャプチャできません」が返されます。iとjでも!

4

2 に答える 2

1
P*[i+1][j]

Pとは?配列のように見えますが、ここでは乗算しています。

于 2013-02-28T19:59:00.937 に答える
1

これは疑わしいようです:

P*[i+1][j]

あなたはおそらく意味します

P[i+1][j]
于 2013-02-28T19:59:14.377 に答える