円周率の近似値について!

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kokko

円周率の近似値について!

#1

投稿記事 by kokko » 14年前

細分化した台形面積を集積することで、円周率πの近似値を求めたプログラムを作ってみたのですが、うまくコンパイルできません。
アドバイスお願いします。

コード:

#include <stdio.h>
#include <math.h>
#define N 1000
 
int main(void) {
double old_y,new_y,old_x,new_x,d,S;
int i;
 
d = 1.0 / N;
S = 0;
 old_y = 1;
 old_x = 0;
 
for (i = 1;i <= N;i++) {
 new_x = i * d;
 new_y = sqrt(1 - new_x * new_x);
 
S = ((old_y + new_y) * d / 2.0);
 
old_y = new_y;
old_x = new_x;
}
 
printf ("分割数 = %d,π = %f\n",N,S * 4);
 
return 0;
}

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: 円周率の近似値について!

#2

投稿記事 by beatle » 14年前

フォーラムルールお読みになりました?
「コンパイルエラーの質問時は必ず最低限のエラーメッセージも書きましょう。」と書いてあります.

それから,インデントをきっちりすることで発見できるエラーもあります.
しっかりインデントしたソースコードを貼りつけてください.
詳しくは投稿前チェックリスト/インデントを揃えようを御覧ください.

non
記事: 1097
登録日時: 15年前

Re: 円周率の近似値について!

#3

投稿記事 by non » 14年前

コンパイルは通りましたけど・・・???
non

box
記事: 2002
登録日時: 15年前

Re: 円周率の近似値について!

#4

投稿記事 by box » 14年前

kokko さんが書きました:細分化した台形面積を集積する
集積しているようには見えないのですが、私の見間違いでしょうか。
それから、使っている変数の意味を説明してください。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

初級者
記事: 200
登録日時: 15年前

Re: 円周率の近似値について!

#5

投稿記事 by 初級者 » 14年前

平方根を求めるところで、一工夫が必要みたいです。
いちばん右端の図形の上底を求める際に、どうやらsqrt()の引数が
負になってしまうことがあるようです。そこで、強制的に0にしてみました。

コード:

#include <stdio.h>
#include <math.h>

#define N (1000)

int main(void)
{
    double x, y0 = 1, y1, h = 1. / N, s = 0;
    int i;

    for (i = 1; i <= N; i++) {
        x = i * h;
        y1 = (i != N) ? sqrt(1. - x * x) : 0.;
        s += (y0 + y1) * h / 2;
        y0 = y1;
    }
    printf("分割数 = %d,π = %f\n", N, s * 4);
    return 0;
}

閉鎖

“C言語何でも質問掲示板” へ戻る