2017-11-10 3 views
0

次のコードスニップでは、何らかの理由でerorの値がFORループの外部に保持されません。変数の値が保持されていません

eror = 0 ; 
    for (i=0; i<n; i++) 
    { 
     predict = intercept + (slope * data[i][0]) ; 
     printf("In the FOR loop eror = %lf\n", eror) ; 
     eror +=(data[i][1] - predict) ; 
    } 
    printf("Out of FOR loop eror = %lf\n", eror) ; 

出力の一部である...

In the FOR loop eror = -0.028400 
    In the FOR loop eror = -0.011216 
    In the FOR loop eror = 0.012196 
    In the FOR loop eror = 0.019527 
    In the FOR loop eror = 0.024293 
    In the FOR loop eror = 0.021309 
    In the FOR loop eror = 0.013337 
    Out of FOR loop eror = -0.000000 

変数ERORは、FORループを抜けたらそこFORループ内の値であるが、ではない、なぜ誰も説明できますか?

+0

**は**の値です。値は-0.000000 – immibis

+0

eror + =(data [i] [1] -prediction); 'の後に最初の' printf'を置くと、おそらく同じ値が2回出力されます(サイクル1回とサイクル1回) – ingroxd

+0

クイックレスポンスありがとう:) –

答えて

0

試してみてください。それはループのために出るとそこ

eror = 0 ; 
for (i=0; i<n; i++) 
{ 
    predict = intercept + (slope * data[i][0]) ; 
    eror +=(data[i][1] - predict) ; 
    printf("In the FOR loop eror = %lf\n", eror) ; 
} 
printf("Out of FOR loop eror = %lf\n", eror) ; 
関連する問題