[問題] 模擬太多次就會出錯

看板C_and_CPP作者 (快快樂樂)時間15年前 (2009/03/18 16:49), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/1
小的最近剛學寫程式 剛剛遇到一個問題 一直無法解決 想請板上各位高手幫忙偵錯一下 大約模擬超過2萬次 視窗就會自己關閉 實在是很奇怪...也不知道錯在哪 以下是完整程式碼 不好意思有點長 先謝謝大家了 #include<stdio.h> #include<math.h> #include<stdlib.h> #include<time.h> double normal() { int i ; double N; for(i=0;i<1;i++) { N=double(rand())/RAND_MAX; } return N; } int main(void) { int i,k,j; int n; printf("請輸入要模擬的次數:"); scanf("%d",&n); double S[5][5]; S[0][0]=0.0006058718; S[0][1]=0.000339878; S[0][2]=0.0003308925; S[0][3]=0.00004346825; S[0][4]=0.0003617589; S[1][0]=0.000339878; S[1][1]=0.001853979; S[1][2]=0.0007299478; S[1][3]=0.001010278; S[1][4]=0.0006364092; S[2][0]=0.0003308925; S[2][1]=0.0007299478; S[2][2]=0.001150133; S[2][3]=0.0005555975; S[2][4]=0.0008855597; S[3][0]=0.00004346825; S[3][1]=0.001010278; S[3][2]=0.0005555975; S[3][3]=0.001122313; S[3][4]=0.0003779205; S[4][0]=0.0003617589; S[4][1]=0.0006364092; S[4][2]=0.0008855597; S[4][3]=0.0003779205; S[4][4]=0.0009437375; /* for(i=0;i<5;i++) { for(j=i;j<5;j++) { printf("請輸入第%d和第%d個資產共變異度",i+1,j+1); scanf("%lf",&S[i][j]); S[j][i]=S[i][j]; } } */ double W[n][5],sum,N[5]; srand((unsigned)time(NULL)); for(i=0;i<n;i++) { for(sum=0,k=0;k<5;k++) { N[k]=normal(); sum+=N[k]; } for(j=0;j<5;j++) { N[j]=N[j]/sum ; W[i][j]=N[j]; } } double Y[n][5]; for(i=0;i<n;i++) { for(j=0;j<5;j++) { for(Y[i][j]=0,k=0;k<5;k++) { Y[i][j]+=W[i][k]*S[k][j]; } } } double var[n]; for(i=0;i<n;i++) { for(var[i]=0,j=0;j<5;j++) { var[i]+=Y[i][j]*W[i][j]; } } int h; double min; for(min=100000,i=0;i<n;i++) { if(var[i]<min) { min=var[i]; h=i; } } printf("portfolio-var=%lf\n",min); for(j=0;j<5;j++) { printf("第%d個資產配置為%lf\n",j+1,W[h][j]); } getchar(); getchar(); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.225.29

03/18 16:53, , 1F
到command line底下執行 至少要看到結束執行時的訊息
03/18 16:53, 1F

03/18 18:01, , 2F
double W[n][5],double var[n],double Y[n][5]
03/18 18:01, 2F

03/18 18:02, , 3F
這幾行,請改用 動態記憶體配置. 不然 n 值太大時,
03/18 18:02, 3F

03/18 18:03, , 4F
Stack 就爆了,程式就當了. 有問題可以來信/水球發問
03/18 18:03, 4F

03/18 19:57, , 5F
T大真的很熱心 我問題已經解決了 板上真的很多熱心高手!
03/18 19:57, 5F
文章代碼(AID): #19mBMcws (C_and_CPP)