23JON
@23JON (23 JON)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

ウォリスの公式をプログラミング

Q&A

ウォリスの公式は
image.png

なるものですが、これをプログラミングしようとしてもなかなかうまく行きません。

とりあえず、私は以下のようにプログラムをしましたが、実行結果はおかしくなってしまいます。

#include <stdio.h>

double seki(int n)
{
   int i;
   double s;
   s=1.0;
   for(i=0;i<n;i++){
     s=s*(4*i*i)/(4*i*i-1);
   }
   return s;
}

int main(void)
{
   int i,n;
   printf("ウォリスの公式を計算します。試行回数を入力して下さい: ");  scanf("%d",&n);

   printf("S=%.9f\n",seki(n));

   return 0;
}

実行結果

$ ./a.out
ウォリスの公式を計算します。試行回数を入力して下さい: 10
S=-0.000000000

どこがおかしいのでしょうか。

0

1Answer

ウォリスの公式は初耳ですが、
seki()関数のfor文はfor(i=1;i<=n;i++)が正しくないでしょうか。
上のプログラムだと初回のforループでs0になってしまうので、
以降のループも0のままになってしまいます。(0に何を掛けても0なので)

↓for文を修正して実行した結果です。期待通りでしょうか。
ウォリスの公式.png

0Like

Comments

  1. @23JON

    Questioner

    回答ありがとうございます。
    ご指摘どおりに、for(i=1,...)としたら、きちんと期待する実行結果となりました。

Your answer might help someone💌