| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2800 人关注过本帖
标题:怎么编写一个程序,输入x的值按下列公式计算cos x的值(精确到10^(-5),即直 ...
只看楼主 加入收藏
书山压力不大
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:31
专家分:14
注 册:2021-4-18
结帖率:100%
收藏
 问题点数:0 回复次数:5 
怎么编写一个程序,输入x的值按下列公式计算cos x的值(精确到10^(-5),即直到项小于0.00001为止)。
编写程序,输入x的值按下列公式计算cos x的值(精确到10^(-5),即直到项小于0.00001为止)。
         cos x=1-x^2/2!+x^4/4!-x^6/6!+...        其中^表示乘方运算
具体要求如下:点击“试题文件夹”按钮进入,打开项目,然后编写程序并进行调试。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{
    double x;
    double cosx=1,power=1,mul=1;
    int i,sign=-1,k=0;  //sign记录正负号,power存储表示x的k次方,mul存储k!
    scanf("%lf",&x);
    while(power/mul>=0.00001)
    {
    /*************代码开始**********/
 

 
    /*************代码结束**********/
    }
    printf("cos(%lf)的值是%6.2lf\n",x,cosx);
    system("pause");
}

【注意】:部分源程序在文件PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在/*****代码开始****/到/****代码结束****/之间填入缺省的若干语句,并且在该语句块中不允许声明新的变量以及不允许

写printf输出语句。

搜索更多相关主题的帖子: cos 小于 代码 输入 精确 
2021-04-23 19:10
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1509
专家分:9241
注 册:2010-3-16
收藏
得分:0 
程序代码:
    /*************代码开始**********/
        k+=2;
        power=pow(x,k);
        mul*=k*(k-1);
        cosx+=sign*(power/mul);
        sign*=-1;
    /*************代码结束**********/ 
2021-04-24 00:55
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
主要是出题者的水平太次,不应该加 #include<math.h> 等。
程序代码:
        k += 2;
        power *= x*x;
        mul *= (k-1)*k;
        cosx += sign*power/mul;
        sign *= -1;


另外,“直到项小于0.00001为止”也是不清不楚的,猜不出这第一个小于0.00001的项要不要加入进去。
假如不需要加入进去,那么代码是
程序代码:
#include <stdio.h>

int main( void )
{
    double x;
    scanf( "%lf", &x );

    double cosx = 0;
    double item = 1;
    for( unsigned i=0; item<=-0.00001 || item>=+0.00001; i+=2 )
    {
        cosx += item;
        item *= -1.0*x*x/(i+1)/(i+2);
    }
    printf("cos(%lf)的值是%6.2lf\n",x,cosx);
}


假如需要加入进去,那么代码是
程序代码:
#include <stdio.h>

int main( void )
{
    double x;
    scanf( "%lf", &x );

    double cosx = 1;
    double item = 1;
    for( unsigned i=0; item<=-0.00001 || item>=+0.00001; i+=2 )
    {
        item *= -1.0*x*x/(i+1)/(i+2);
        cosx += item;
    }
    printf("cos(%lf)的值是%6.2lf\n",x,cosx);
}

2021-04-26 09:34
chunjiao
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2021-4-26
收藏
得分:0 
新人表示好难哦
2021-04-26 11:01
书山压力不大
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:31
专家分:14
注 册:2021-4-18
收藏
得分:0 
回复 楼主 书山压力不大
谢谢!
2021-04-28 18:14
书山压力不大
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:31
专家分:14
注 册:2021-4-18
收藏
得分:0 
回复 2楼 apull
谢谢指教!
2021-04-28 18:15
快速回复:怎么编写一个程序,输入x的值按下列公式计算cos x的值(精确到10^(-5) ...
数据加载中...
 
   



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

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