3

現在、この式pi = n*(sin(180/n));をxcodeに実装しようとしています。しかし、このように書くだけで、-12425553や23082083のような膨大な数が得られます。どうすれば修正できますか?

使用しint n; double pi;ました。

アップデート:

度に変換するためにを使用M_PI/180してみましたが、それでも機能しません。助言がありますか??

pi = n*sin((180/n) * (M_PI/180));

ちなみにアスタリスクを外しました!!

4

3 に答える 3

10

コードには 3 つの問題があります。

  • プリミティブをポインターとして定義します (アスタリスクを削除する必要があります)。
  • sin度数がかかると仮定します(ラジアンがかかります)
  • 整数除算を使用します(sin実際に度数を取った場合、そうではありません。180.0代わりに使用する必要がありました180

度をラジアンに変換するには、次の式を使用します。

(degrees*M_PI)/180.0
于 2012-07-19T11:56:21.547 に答える
1

ほとんどの場合、「180/n」の部分は整数を分割しています。試す:

sin(180.0/n);

@sosbornが正しく指摘したように編集すると、int自体ではなく、「intへのポインター」の間で演算を行っています。

于 2012-07-19T11:56:17.183 に答える
1

「-12425553 や 23082083 のような巨大な数字」

pi = n*(sin(180/ n ));
int *n; ダブル * パイ;


これをポインターで実行しようとしていることを忘れないでください。;)
値を使用する場合にのみ機能します。「*」を確認してください。

于 2012-07-19T12:07:05.493 に答える