コードはもう書けたとおもいます。
参考になるかはわかりませんが、
質問文のコードをベースに私なりに書いてみました。
- 変数の宣言時に、初期値を設定するようにしました。
- 計算結果の表示書式を工夫しました。
- 変数の演算子の間に SPACE を入れました。
c
1#include<stdio.h>
2
3int main(void)
4{
5 int n = 0;
6 double a = 0.0;
7 double r = 0.0;
8 double y = 0.0;
9 double z = 0.0;
10
11 printf("a: ");
12 scanf("%lf", &a);
13 printf("n: ");
14 scanf("%d", &n);
15 printf("r: ");
16 scanf("%lf", &r);
17
18 z = 1.0;
19 for (int i = 0; i <= n; i++) {
20 y = a * z; // i 項目 a * r * r ... (r を i 回乗算する)
21 printf("%2d:\t%12.6f\n", i, y);
22 z = z * r;
23 }
24 return 0;
25}
実行例:
$ gcc 1.c
$ ./a.out
a: 1
n: 10
r: 2
0: 1.000000
1: 2.000000
2: 4.000000
3: 8.000000
4: 16.000000
5: 32.000000
6: 64.000000
7: 128.000000
8: 256.000000
9: 512.000000
10: 1024.000000
$ ./a.out
a: 1
n: 10
r: 0.5
0: 1.000000
1: 0.500000
2: 0.250000
3: 0.125000
4: 0.062500
5: 0.031250
6: 0.015625
7: 0.007812
8: 0.003906
9: 0.001953
10: 0.000977