- ベストアンサー
C言語で円周率を求めるプログラムを作りたいのですがわかりません。
C言語で円周率を求めるプログラムを作りたいのですがわかりません。 どなたか教えていただけないでしょうか。
- kittymimmy
- お礼率91% (41/45)
- C・C++・C#
- 回答数5
- ありがとう数12
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
C言語と円周率をキーワードにして検索をかけると、参考になるサイトが検索できますよ。 以下のURLを参照してください。具体的な、コーディングの例ものっています。 http://www1.cts.ne.jp/~clab/hsample/Math/Math1.html http://www.geocities.jp/kaname78web/pi.html http://www.ss.cs.meiji.ac.jp/CCP051.html
その他の回答 (4)
- salsberry
- ベストアンサー率69% (495/711)
念のために書いておきますが、ANo.3で挙げたプログラム例は真に受けないでください。 学校の課題とかだったら、多分怒られます。
お礼
大丈夫です。 わざわざありがとうございました。
- asuncion
- ベストアンサー率33% (2126/6286)
>小数点以下6桁で表示されました。 >これはどうしてなのか教えていただけませんか? printf()の書式"%f"で、精度の記述を省略しているからです。 時間があれば、printf()の書式指定文字列について 調べてみてください。
お礼
ありがとうございいます。 理解できました。
- salsberry
- ベストアンサー率69% (495/711)
小数点以下何桁まで求めたいのでしょうか? どんなアルゴリズムを使うにせよ、C言語のdouble型で表せる範囲に収まるかどうかで面倒くささが大きく異なります。 【円周率を求めるプログラム例】 #include <stdio.h> #include <math.h> int main() { double p=asin(1.0)*2.0; /* sin(π/2)=1 */ printf("%f\n", p); }
お礼
ありがとうございます。 特に小数点以下何桁までとは決まっていないのですが、 salsberryさんのプログラムを実行してみたところ 小数点以下6桁で表示されました。 これはどうしてなのか教えていただけませんか? 初歩的な質問でごめんなさい。
- larrymiz
- ベストアンサー率26% (237/878)
円周率を求めるアルゴリズム自体が、問題ですから、C言語で、記述できる円周率を求めるプログラム自体が無数にあります。円周率πの話の本を、まず始めに勝ってください。モンテカルロ法など乱数を使って求めるものなど最初に乱数発生プログラムを作る問題から解くなどという方法もあります。円周率の歴史書があるぐらいで、一朝一夕で片付くようなプログラム制作ではありません。検索してもC言語での回答はないと思います。まずは、円周率を知ることです。
お礼
返答ありがとうございました。 円周率についてもう少し調べてみることにします。
関連するQ&A
- C言語で円周率
大学でC言語で円周率を出すプログラムを作れと言われたのですが 一度作ってみたもののうまくできず さらに先生には 「もっと説明できるように作って来い」と言われてしまって困っています。 簡単なプログラミングで作りたいのですが どなたか教えていただけるとうれしいです!
- ベストアンサー
- その他(学問・教育)
- C言語で円周率を求めるプログラムを解読しています。
C言語で円周率を求めるプログラムを解読しています。 ウィキ(http://ja.wikipedia.org/wiki/%E5%86%86%E5%91%A8%E7%8E%87)にも載っていましたが、 π/6=で始まる式を使って、 一項一項を順に求めていき、 最後にすべての項を足したものに6をかけて πを求めるという方法を使っています。 誤差が小さくなるまで繰り返すということで while(a>=1e-10) という表現をしているのですが、 ここのところが理解できません。 どなたか教えてくださいませんか? また、eとは自然対数の底などに用いられるあのeのことでしょうか? C言語初心者なのでお手柔らかに説明していただけると助かります。
- ベストアンサー
- C・C++・C#
- C言語、円周率の値が0.000000?
いつも大変お世話になりありがとうございます。 下記のコードを実行したところ、円周率の値が0.000000になりました。 どうしてでしょうか? アドバイスの程宜しくお願い申し上げます。 #include <stdio.h> int main(void) { double pi; printf("円周率の値はいくつですか?\n"); scanf("%1f", &pi); printf("円周率の値は%fです。\n", pi); return 0; } C:\MinGW>Sample9 円周率の値はいくつですか? 3.14 円周率の値は0.000000です。
- ベストアンサー
- C・C++・C#
- 次のプログラムは、円周率だの近似値を求めるプログラムである。プログラム
次のプログラムは、円周率だの近似値を求めるプログラムである。プログラム中の○に適するものを記入しなさい。 これを教えてください! C言語です #include<stdio.h> void main(void) { int sei,en; float pai,x,y,r; r=1.0; sei=0; en=0; for(x=0,1;○;x=x+0,1){ for(y=0.1;y<=1.0;○){ sei=sei+1; if((x*x+y*y)<=r*r)en=○; } } pai=(4.0*○)/(float)sei; printf("円周率=○¥n",pai); }
- 締切済み
- C・C++・C#
- 円周率を求めるC言語のプログラム
int a=10000,b,c=8400,d,e,f[8401],g;main(){for(;b-c;)f[b++]=a/5;for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b); というのが本(「π魅惑の数」)に載っていたので #include <stdio.h> int main(void){ int a=10000,b,c=8400,d,e,f[8401],g; for(;b-c;)f[b++]=a/5; for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a) for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b); return 0; } としたのですが 円周率を表示してくれません。 (b=0にすると一応は出てくるのですが微妙に間違ってます(よく分からないですけどそのくらいの誤差のあるプログラムなのでしょうか?))
- ベストアンサー
- C・C++・C#
お礼
ありがとうございます。 参考にさせていただきます。