テーマ:四半期GDPと年率換算の成長率
四半期(4月6月、7月9月など)のうち、ある期の四半期GDPをx[t]、その前期の
四半期GDPをx[t-1]とする。このとき、対前期比は、以下の式で表すことができる。
x[t]/x[t-1]
年率に換算したパーセント表示の成長率yは、以下の式で表すことができる。
y = ((x[t]/x[t-1])^4 - 1)*100
(^n はn乗の意味 * は掛けるの意味)
今期の四半期GDPと前期の四半期GDPを入力させ、年率換算の成長率(パーセント
表示)を求めるプログラムを作りたい。
(実行例)端末にて
$ ./a.out
Input QGDP(t),trillion yen :139.8884 [Enter]
Input QGDP(t-1),trillion yen :137.9553 [Enter]
QGDP(t) = => 139.888400
QGDP(t-1) = => 137.955300
Growrh rate ( annualized basis ) = => 5.723919%
しかし私のこのソース(↓)
int main(void) { int i,num,power; double growthRateYear = 0.0,qgdp_t = 0.0,qgdp_t_1 = 0.0; double ratio = 0.0; /*今期と前期の四半期GDPを入力*/ printf("Input QGDP(t),trillion yen :"); scanf("%lf",&qgdp_t); printf("Input QGDP(t-1),trillion yen :"); scanf("%lf",&qgdp_t_1); /*対前期比を求める*/ ratio = qgdp_t/qgdp_t_1; /*対前期比を4乗した値を求める(この伸びが4回続くと想定)*/ power = 4; for(i=1;i<=power;i++){ power *= ratio; /* power = power * ratio */ } growthRateYear = (power-1)*100; printf("\n"); printf("QGDP(t) ==> %f\n",qgdp_t); printf("QGDP(t-1) ==> %f\n",qgdp_t_1); printf("\n"); printf("Growrh rate (annualized basis ) ==> %f%%\n",growthRateYear); return 0; }
これを端末で実行すると、こうなります。
$ ./a.out
Input QGDP(t),trillion yen :139.8884
Input QGDP(t-1),trillion yen :137.9553
QGDP(t) ==> 139.888400
QGDP(t-1) ==> 137.955300
Growrh rate (annualized basis ) ==> 300.000000%
5.723919% のはずが 300.000000% になってしまいます。
私のソースのどこがおかしいのか、どう書けばいいのか分かりません。
どうかおしえてください。お願いします。。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。