看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): Win10 編譯器(DEC C++) 問題(Question):小弟我利用C語言算一些算式結果算出來有些是對的 不過有些會大的很誇張,也會出現-1.QNANO爬文查google之後還是沒辦 法解決想上來問各位是哪裡要改資料型態嗎? CODE: #include<stdio.h> #include<stdlib.h> #include<time.h> int main(void) { int i,j,k; srand(time(NULL)); int u1[50]; float ep[50]; float yk[50]; float ystar[50]; float u[50]; float V[2][5] = {{-0.9,1.8,0.4,0.5,0.7},{-0.2,0.7,-0.3,-1.4,0.5}}; float W[5][4] = {{-2.2,1.9,2.7,5.2},{-4.3,-2.9,0.5,1.8}, {-2.0,1.1,-0.6,1.5},{-1.2,1.3,-0.4,1.6},{3.1,1.3,1.2,2.2}}; for(i=0;i<50;i++) { u1[i]=(rand()%90)+1; u[i]=(float)u1[i]/100; //產生50個u[0,1] //printf(" %d. %1f\n",i,u[i]); yk[0]=0.0; ystar[0] =0.0; yk[i+1] = yk[i]*0.9048 + u[i]*0.09516; //得到50個yk for(j=0;j<4;j++) { for(k=0;k<5;k++) { ystar[i] = ystar[i] + ((V[0][k])*yk[i]+(V[1][k])*u[i])*(W[k][j]); } } printf("%d. %f\n",i,ystar[i]); } system("pause"); } 預期的正確結果(Expected Output):都是正常的值 錯誤結果(Wrong Output):會出現類似95478000000000或-1.QNANO值 謝謝大家幫我解惑 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.150.131 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1481021533.A.7E7.html
x000032001: yk[i+1] 越界了 12/06 18:58
gir26354: 您好 我改yk[51] 還是有其他數值會很怪~ 可以麻煩解答嗎 12/06 19:24
gir26354: 發現給初始值就可以了 謝謝 12/06 19:39
ilikekotomi: ystar的沒初始化 有發現以後就不會忘記了 12/06 19:49
gir26354: 真的 看了一小時 以後絕對不會忘記了!!!! 12/06 19:54