| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 867 人关注过本帖
标题:求助,急!!帮忙编道计算题,以下是完整的笔算过程,需要用程序计算一遍
只看楼主 加入收藏
在雨中
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-4-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
求助,急!!帮忙编道计算题,以下是完整的笔算过程,需要用程序计算一遍
wen.rar (13.59 KB)

打开文件包即可,输入前两行数据得第三行数据

[ 本帖最后由 在雨中 于 2010-4-16 13:18 编辑 ]
搜索更多相关主题的帖子: 笔算 
2010-04-16 13:09
蓝天依笑
Rank: 2
等 级:论坛游民
帖 子:47
专家分:58
注 册:2010-4-16
收藏
得分:0 
不好意思,我也不会!!
2010-04-16 14:06
雨夜星光
Rank: 4
等 级:业余侠客
帖 子:66
专家分:230
注 册:2009-11-25
收藏
得分:0 
#include<math.h>
#include<stdio.h>
#define PI 3.14
main()
{
    double v,u,t1,t2,t3,s;
    double V;
    printf("请输入数字:\n");
    scanf("%lf%lf",&v,&u);   
    V=v/360*2*PI;
    t1=57.33*100/110*(u-31.83*sin(V));
    t2=31.83*(57.33*cos(PI/4)-31.83)*(1-cos(V));
    t3=57.33*(1+sin(PI/4));
    s=110-(t1+t2+1/2*u*u)/t3;
    printf("%f\n",s);   

}

可能是PI值的精度问题,导致结果算出来不怎么正确。为什么么我的cos(-180)=-0.999999呢?

C/C++交流群:65802335
2010-04-17 00:23
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
收藏
得分:0 
中间取了约数吧
2010-04-17 07:43
在雨中
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-4-16
收藏
得分:0 
回复 3楼 雨夜星光
谢谢哦,不过运行的结果不对啊,我自己的,不过没有循环,每次都要自己输入数据,该怎么修改呢??
#include <stdio.h>
#include <math.h>
#define PAI 3.1415962

void main()
{
    int i,h;
    int a=100;//空袋宽度
    int c=45;//后倾角角度值
    //double high,u,fai,x,y,z,a,b,c,d;
    double    h1,h1_denominator1,h1_denominator2,h1_least,r,e,fai,u,temp;
    double  high,high_denominator,high_denominator1,high_denominator2,high_denominator3,high__least;
    for(i=1;i<=11;i++)
    {
        printf("请输入fai的值及其对应的u的值:(以空格键分隔)\n");
        scanf("%lf %lf",&fai,&u);
        r=a/PAI;
        //r=a/3.14;
        h1_denominator1=PAI/4*a*cos(c*PAI/180)+r*cos(c*PAI/180);
        temp=h1_denominator1*h1_denominator1+4*(1+sin(c*PAI/180))*pow(a,2);
        h1_denominator2=sqrt(temp);
        h1_least=2*(1+sin(c*PAI/180));
        h1=(h1_denominator1+h1_denominator2)/h1_least;
        h=((int)h1/10)*10;
        if(h<h1)
            h=h+10;
        else
            h=h+0;
        e=(0.5*pow(a,2)-2*pow(r,2))/(h*(1+sin(c*PAI/180))-pow(a,2)/h-2*r*cos(c*PAI/180));

        high_denominator1=e*a/h*(u-r*sin(fai*PAI/180));
        high_denominator2=r*(e*cos(c*PAI/180)-r)*(1-cos(fai*PAI/180));
        high_denominator3=0.5*pow(u,2);
        high__least=e*(1+sin(c*PAI/180));
        high_denominator=high_denominator1+high_denominator2+high_denominator3;
        high=h-high_denominator/high__least;

        printf("所对应的曲线高为:\n");
        printf("high=%lf\n",high);
    }
}
2010-04-18 16:56
在雨中
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-4-16
收藏
得分:0 
回复 4楼 lucky563591
是的,约到厘米的
2010-04-18 16:57
在雨中
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-4-16
收藏
得分:0 
回复 2楼 蓝天依笑
谢谢诶
2010-04-18 16:58
雨夜星光
Rank: 4
等 级:业余侠客
帖 子:66
专家分:230
注 册:2009-11-25
收藏
得分:0 
真不好意思,我测试了一下,不是精度的问题。是我的一个地方出了点错误。
现在我已经改正了。
还有,我不懂你说的循环的意思,所以不知怎么去改。我的程序如下
#include<math.h>
#include<stdio.h>
#define PI 3.1415926
main()
{
    double v,u,t1,t2,t3,s;
    double V;
    printf("请输入数字(fai/u):\n");
    scanf("%lf%lf",&v,&u);   
    V=v/360*2*PI;
    t1=57.33*100/110*(u-31.83*sin(V));
    t2=31.83*(57.33*cos(PI/4)-31.83)*(1-cos(V));
    t3=57.33*(1+sin(PI/4));
    s=110-(t1+t2+u*u/2)/t3;
    printf("%.2f\n",s);
}

C/C++交流群:65802335
2010-04-18 19:11
在雨中
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-4-16
收藏
得分:0 
回复 8楼 雨夜星光
你好,你的程序运行时只能输入一组数据,press any key to continue 就跳回到原程序了,这怎么回事呢?
2010-04-18 19:29
雨夜星光
Rank: 4
等 级:业余侠客
帖 子:66
专家分:230
注 册:2009-11-25
收藏
得分:20 
那添加一个功能就行了,不知这样是你想要的不?
#include<math.h>
#include<stdio.h>
#define PI 3.1415926
main()
{
    double v,u,t1,t2,t3,s;
    double V;
    int flag=1;
    char c;
    do
    {
        printf("请输入数字(fai/u):\n");
        scanf("%lf%lf",&v,&u);   
        V=v/360*2*PI;
        t1=57.33*100/110*(u-31.83*sin(V));
        t2=31.83*(57.33*cos(PI/4)-31.83)*(1-cos(V));
        t3=57.33*(1+sin(PI/4));
        s=110-(t1+t2+u*u/2)/t3;
        printf("%.2f\n",s);
        printf("是否继续计算:(Y/N)\n");        
        do
        {
            getchar();
            c=getchar();
            if(c=='Y'||c=='y')
                break;
            else if(c=='N'||c=='n')
            {
                flag=0;
                break;
            }
            else
                printf("选择错误,请重新选择\n");
        }while(1);
        
    }while(flag);
   
}

C/C++交流群:65802335
2010-04-18 19:42
快速回复:求助,急!!帮忙编道计算题,以下是完整的笔算过程,需要用程序计算一 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014576 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved