鱼C论坛

 找回密码
 立即注册
查看: 1207|回复: 4

求编一个程序

[复制链接]
发表于 2015-2-25 09:46:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
做一个C语言的程序:
a=18.0,b=270.0,h的值要求输入范围(2个数值,最小值和最大值),但是h的范围是:270.0--306.0,超出的自动舍去。
m=acos((b^2+h^2-a^2)/(2*h*b)),
n=acos((a^2+h^2-b^2)/(2*h*a)),
p=tan(m)的平方/tan(n)的平方;
根据h的值由范围的最小值+0.1梯增,直到最大值。
找出P的最大值,和此时的h值。
请大侠求助。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-25 13:07:44 | 显示全部楼层
没测试,仅供参考
#include <stdio.h>
#include <math.h>

float m(float h)  //求得m的值
{
        float a,b;
        a = 18.0;
        b = 270.0;
        return acos( (b*b - a*a + h*h) / (2*h*b));
}

float n(float h)    //求得n的值
{
        float a,b;
        a = 18.0;
        b = 270.0;
        return acos((a*a - b*b + h*h)/ (2*h*a) );
}

float p(float h)     //求得p值
{
        return pow(tan(m(h))/tan(n(h)),2);
}

float calc(int floor,int up)  //从下限到上限寻找最大值
{
        float i,max,maxh;

        i = floor;
        max = p(i);
        maxh = floor;

        for(i = floor+0.1;i<up;i+=0.1){
                if(p(i)>max){
                        max = p(i);
                        maxh = i;
                }
        }
        printf("%f\n%f",max,maxh);
}

int main()
{
        int up,floor;
        scanf("%f %f",&floor,&up);

//舍弃不符合要求的范围
        if(floor<270.0){
                floor = 270.0;
        }
        if(up>306.0){
                up = 306;
        }

        calc(floor,up);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-25 13:19:24 | 显示全部楼层

谢谢你了。。。崇拜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-25 13:23:44 From FishC Mobile | 显示全部楼层
simon896 发表于 2015-2-25 13:19
谢谢你了。。。崇拜

小兄弟,要勤于练习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-25 16:40:05 | 显示全部楼层
百日维新 发表于 2015-2-25 13:23
小兄弟,要勤于练习

是啊,谢谢了。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 17:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表