输入一个正整数n和一个实数x 按给定公式求cos(x)的近似值(保留4位小数)。要求 定义并调用power(x,n)计算幂函数,定义并调用函数fact(n)计算n!。
#include <stdio.h>
void main()
{
int i,n,flag; /* flag-符号变量,在+1、-1交替变化 */
double x,item,sum; /* item-项变量, sum-和变量 */
//请在两条星线之间填入相应的代码, 声明fact函数和power函数
/*******************************************************/
double fact(int n);
double power(double x,int n);
/*******************************************************/
printf("输入一个正整数n和一个实数x:"); /* 输入提示 */
scanf("%d%lf",&n,&x);
//请在两条星线间填入相应代码, 按给定公式求cos(x)的近似值
//要求:调用函数fact求阶乘,调用函数power求幂函数。
/*******************************************************/
flag=-1;
if(n==1) {
sum=1;
}
else
{
sum=1;
for(i=2;i<=n;i++){
sum=sum+power(x,i)*flag/fact(i);
flag=-flag;
}
/******************************************************/
printf("cos(x)的近似值=%0.4f\n",sum); /* 输出结果 */
double fact(int n) //定义阶乘函数
{
double product; /* 连乘变量 */
int i,p;
//请在两条星线间填入相应代码, 计算n!
/*************************************/
product=1;p=2n-2;
for(i=1;i<=p;i++)
product=product*i;
/*************************************/
return product; /* 返回结果 */
}
double power(double x,int n) //定义幂函数
{
double pow; /* 连乘变量 */
int i;
//请在两条星线间填入相应代码, 计算n!
/*************************************/
for(i=2;i<=n;i++)
{
pow=pow*x*x;
}
/*************************************/
return pow; /* 返回结果 */
}
哪里错了?