我有这个数学公式,用于找到太阳的位置d = 23.45p / 180 * sin ( 2p * ( 284 + n ) / 365 )
(其中d - 太阳的倾角,p-PI = 3.14159和n天数)
我在C中使用以下编码来查找如果我输入任意数量的'n'我会得到什么答案,但在编译时会出现错误。
守则
#include <stdio.h>
#include <math.h>
#define PI=3.1415
main ()
{
float a,b,c,d,n,answer,PI;
//const float PI=3.1415;
printf ("\nEnter today's number (between 1 and 365 days in a year)\n");
printf ("to locate the sun's position:\n");
scanf ("%f", &n);
d = ((23.45*M_PI)/180.00)*sin(2.00*M_PI(284.00+&n)/365.00);
printf ("\nDeclination = %f\n", d);
}
答案 0 :(得分:1)
此:
#define PI=3.1415
转过这一行:
float a,b,c,d,n,answer,PI;
进入这个:
float a,b,c,d,n,answer,3.1415;
...很可能是编译错误(或者至少其中一个......)。
答案 1 :(得分:1)
M_PI是一个未定义的变量。这可能导致错误。另外,&amp; n表示n的地址,所以不要写(284.00 +&amp; n)。而只是写(284.00 + n)。确保已包含sin函数的正确头文件。另外,正如另一张海报指出的那样,不要再次定义PI。
答案 2 :(得分:1)
我至少做了编译:
#include <stdio.h>
#include <math.h>
#define PI 3.1415
main ()
{
float a,b,c,d,n,answer; // remove PI here.
printf ("\nEnter today's number (between 1 and 365 days in a year)\n");
printf ("to locate the sun's position:\n");
scanf ("%f", &n);
d = ((23.45*PI)/180.00)*sin(2.00*PI*(284.00+n)/365.00);
printf ("\nDeclination = %f\n", d);
}
您可以将PI定义为 #define 或 float var ,但不能同时定义两者。
#define 不需要 = ,这不是作业。
d = ... 不行。
在 scanf 中,您获取结果变量的地址(即&amp; n ),但只需在calucaltion中使用 n 。
我不知道结果是否正常,也许你有一些测试数据。 (顺便说一句:今年,2012年,还有一天......)
答案 3 :(得分:0)
你不需要&amp;这里
284.00+&n
你只使用n的值来计算总和,你在scanf中使用&amp; n因为scanf需要更新n的值。
也使用
之类的东西#define PI 3.1413f
define不需要=。如果您已定义PI,则无需声明
float a,b,c,d,n,answer,PI;
应该是
float a,b,c,d,n,answer;