エントリがdiag[i][i] = 2/(2i+1)
の対角行列を作成したいと思います。 ここに私のコードがあります。なぜそれが動作しないのかわかりません。それは、 diag[0][0]=2
,diag[1][1]=2/3
およびdiag[2][2]=2/5
l=2
である必要があります。 a
がdiag[i][i]
と異なる値を持つという事実も混乱します。 あなたが私を助けてくれることを願っています。シンプルな "forループ"はCの正しい数を計算しないでください
#include <stdio.h>
#include <math.h>
int main(void)
{
int l = 2;
int i , p;
double diag[l+1][l+1];
int a;
for (i = 0; i < l+1; i++)
{
p = 2*i + 1;
printf("%d ", p);
printf("\n");
diag[i][i] = 2 * 1/p;
printf("%d ", diag[i][i]);
printf("\n");
a = 2* 1/p;
printf("%d ", a);
printf("\n");
}
}
これは、すべての時間の中で最も頻繁なFAQと同じです... '1/p'は浮動小数点ではなく' int'型で行われます。 – Lundin