1

ラプラシアンを解くために C で行列を作成しようとしています。

しかし、これは間違っています。マトリックスの初期化段階で問題を特定しました。プログラムが実行されるたびに、一見ランダムな値が 1 つの要素に配置されます。この数値は、コードの不安定性を示唆するたびに変化し、行列が 9x9 よりも大きくなるように作成された場合に発生します。

なぜこれが起こっているのでしょうか?

ありがとう

マトリックスを表示するために使用しているコードは次のとおりです。

  // create matrix 
  double mat[meshno][meshno] = { {0} };  // x direction defined by i, y by j

  //variables 
  int i, j, k;

  //print initial matrix
for (i=0;i<=meshno;i++)
 { 
for(j=0;j<= meshno;j++)
 {
   printf("%f ", mat[i][j]);
 }
 printf("\n");
 }
4

2 に答える 2

6

各配列の末尾を過ぎた要素を見ています。

あなたの for ループは使用し、使用<しないで<=ください:

for (i = 0; i < meshno; ++i)
{ 
 for(j = 0; j < meshno; ++j)
 {
于 2013-10-10T14:24:40.770 に答える
0

への変更

for (i=0; i< meshno;i++)
 { 
for(j=0; j< meshno;j++)
 {
于 2013-10-10T14:27:30.193 に答える