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

您的代码存在三个问题:

  • 您将原语定义为指针(您需要删除星号)
  • 您假设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 ));
诠释* n; 双 *pi;


请记住,您正在尝试在指针上执行此操作!;)
如果您使用值,它只会起作用,请检查您的“*”。

于 2012-07-19T12:07:05.493 回答