百度知道 - 信息提示

日期:2025-01-12 20:05:15 人气:1

百度知道 - 信息提示

    A+
热门评论

C语言问题:输入一个正整数n和一个实数x 按给定公式求cos(x)的近似值(保留4位小数)。

错误不多,都是一些常犯的小错误,将来都能避免,首先是在函数fact里有一行p=2n-2;这个最明显,应该是p=2*n-2;其次,在函数power里最开始的double pow;没有初始化变量,会在下面的相乘时出错,此外就没有什么大问题了,主要就是main函数以及main里面的if else里缺少“}”这个符号,以后编程时最好把程序排列的更美观一点,就行了,下面附上改正后的程序, #include 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=2*n-2; for(i=1;i<=p;i++) product=product*i; /*************************************/ return product; /* 返回结果 */ } double power(double x,int n) //定义幂函数 { double pow=1; /* 连乘变量 */ int i; //请在两条星线间填入相应代码, 计算n! /*************************************/ for(i=2;i<=n;i++) { pow=pow*x*x; } /*************************************/ return pow; /* 返回结果 */ } 就这样,望采纳。。。。。

阅读全文