私はCでnoobです。私はMatlabから来ました。私は均等な間隔の配列の配列を作成するような非常に簡単な操作を行うことに夢中になります。 私がやりたいことは、0から0.1の一定増分で始まる50要素の配列です。 MATLABで、それはのように簡単になります:CIで倍精度の値を均等に配置した配列を作成する
n=50;
h=0.1;
t=0:h:(n-1)*h;
このしようとしています:
#include<stdio.h>
int main() {
int n = 50;
double h = 0.1;
double t[n];
t[0] = 0;
int i;
for (i = 0; i <= n; i++){
t[i+1] = t[i] + h;
printf("%i %d\n",i, t[i]);
}
return 0;
}
をし、出力のようなクレイジーなものである:
0 0
1 -1717986918
2 -1717986918
3 858993460
4 -1717986918
5 0
6 858993459
7 1717986918
8 -1717986919
9 -858993460
10 -1
...
そして私は本当に」することができます理由を理解できない。
ありがとうございました! printf("%i %d\n",i, t[i])
で
答えを説明するために説明を追加できますか? – RAS
ブロック内に 'static 'のない宣言は静的ではありません。彼らは、自動ストレージ期間を持つオブジェクトを宣言します。可変長配列はCのオプション機能であり、OPの実装では明らかにサポートされています。 –