70991


等比数列を求めるプログラムを作りたいのですが、実行結果がすべて同じ数字になってしまいます。

求めたい等比数列は、初項【第一項】から第十項までなので、例えば初項が１、公差が３であれば、実行結果は以下のようになるはずです。

**期待する実行結果:**

[code]

    1 3 9 27 81 243 729 2187 6561 19683
    
[/code]

しかし、現状のプログラムでは実行結果がすべて同じ数字になってしまいます。  
どこがおかしいのでしょうか。回答よろしくお願いします。

**実際の実行結果:**

[code]

    $ ./a.out
    初項 a? 1
    公差 r? 3
    1 1 1 1 1 1 1 1 1 1 
    
[/code]

**プログラム**

[code]

    #include <stdio.h>
    
    int times(int n, int x)
    {
       return n*x;
    }
    int main(void)
    {
        int i, a, r;
    
        printf("初項 a? ");
        scanf("%d", &a);
        printf("公差 r? ");
        scanf("%d", &r);
    
        for (i = 1; i <= 10; i = i + 1) {
        printf("%d ", a);
            times(a,r);
        }
        printf("\n");
    
        return 0;
    }
    
[/code]


CC BY-SA 4.0
2020-10-07T10:33:38.970
70989
2020-10-07T11:34:22.587
2020-10-07T11:34:22.587
3060
41837
question
c
等比数列を求めたいが、実行結果がすべて同じ数字になってしまう


単純ミスとお見受けします。

[code]

    #include <stdio.h>
    
    int times(int n, int x)
    {
       return n*x;
    }
    
    int main(void)
    {
        int i, a, r;
    
        printf("初項 a? ");
        scanf("%d", &a);
        printf("公差 r? ");
        scanf("%d", &r);
    
        for (i = 1; i <= 10; i = i + 1) {
            printf("%d ", a);
            a = times(a,r); // この行を修正
        }
        printf("\n");
    
        return 0;
    }
    
[/code]


CC BY-SA 4.0
2020-10-07T10:48:31.500
70991
2020-10-07T11:31:01.937
2020-10-07T11:31:01.937
3060
18540
70989
answer