程序有错误,改了一下。现在是升级版本。红色粗体是修改的地方。如果是0的话,第一次循环就退出来了。
#include <stdio.h>
#include <memory.h>
#include <math.h>
#define PI 3.14159265
struct s_Valeur
{
float f_Degre;
float f_Volume;
};
main()
{
int a = 2; // 圆锥体斜边a
float f_Haut = 0; //高
float f_R = 0; //底面半径
double d_Step = 0.01; //步长
s_Valeur s_Maximal, s_Temp; //最大值和中间计算变量
//初始化结构体
memset(s_Maximal, -1, sizeof(float) * 2);
memset(s_Temp, 0, sizeof(float) * 2);
//从0度开始到180度为止,找出体积最大值。
for (int i = 0; i < 180; i += d_Step)
{
f_Haut = a * cos(i * PI / 180);
f_R = (a * sin(i * PI / 180)) / 2;
s_Temp.f_Volume = (PI * f_R * f_R * f_Haut) / 3;
s_Temp.f_Degre = i;
//判断体积最大值
if (s_Temp.f_Volume > s_Maximal.f_Volume)
{
s_Maximal.f_Volume = s_Temp.f_Volume;
s_Maximal.f_Degre = s_Temp.f_Degre;
}
else
{
break;
}
}
}