那一缕温暖的夕阳

frozen heart

自杀用户
太厉害呢~
其它的看懂了,蓝字部分的高和半径的公式不是太明白~
既然i是角度,为什么要乘PI呢?


for loop里的if/else有些费解,我得慢慢琢磨~
这里的三角函数用的是角弧度的π,π = 180°,我们用的角度需要转换一下,90°等于二分之π,也就是90除以180再乘以π。
那条判断语句用语言来描述就是:如果本次计算的体积大于已经保存的最大的体积,用本次计算的体积和角度替换以前的最大体积和角度,否则就是已经找到最大值了,可以不用继续循环,直接退出来鸟。
 

frozen heart

自杀用户
这里的三角函数用的是角弧度的π,π = 180°,我们用的角度需要转换一下,90°等于二分之π,也就是90除以180再乘以π。

为什么不直接就用sin(i)cos(i)表示呢?

这里的三角函数用的是角弧度的π,π = 180°,我们用的角度需要转换一下,90°等于二分之π,也就是90除以180再乘以π。
那条判断语句用语言来描述就是:如果本次计算的体积大于已经保存的最大的体积,用本次计算的体积和角度替换以前的最大体积和角度,否则就是已经找到最大值了,可以不用继续循环,直接退出来鸟。
判断语句的意思我看明白了,不过感觉可以更简化。
 
哦,是Electromechanical,这个是double E的一个分支吧?要读多久?

你就每天拉着那小伙子天南地北的瞎吹呗,这样语言进步会很快。

现在天天混在技校小青年堆里挺郁闷的,压力也大,毕业了就爽歪歪了。。

蓝字部分实在不敢当~
是的,那小子是黑人。我天天和他聊天,问他支持自由党还是魁人党,喜不喜欢马华什么的。又一次我看他的照片太黑了。就对他说:“太黑了”。他说:“这是事实呀”。我又说:“你以后不用照相了,画一个黑框就可以了”。那小子乐得,只能看到他一嘴大白牙了。
 
为什么不直接就用sin(i)cos(i)表示呢?


判断语句的意思我看明白了,不过感觉可以更简化。
直接用π不直观,如果程序有问题,打断点调试时,那个数据不知道是多少,你还需要用计算器转换回来。另外那个结构体中,有一项保存的是角度。
我觉得这个判断已经是最简单的了,还怎么简化呀?愿闻其详。
 
程序有错误,改了一下。现在是升级版本。红色粗体是修改的地方。如果是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;
}
}
}
 

阿吾

踏实做事 有趣做人
程序有错误,改了一下。现在是升级版本。红色粗体是修改的地方。如果是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;
}
}
}

俺目测一下,大概是对的,

终于知道你们在算什么了,
 

注册或登录来发表评论

您必须是注册会员才可以发表评论

注册帐号

注册帐号. 太容易了!

登录

已有帐号? 在这里登录.

Similar threads

顶部