百度知道 - 信息提示
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; /* 返回结果 */
}
就这样,望采纳。。。。。
用C语言编程:从键盘输入两个实数a和x, 按公式计算并输出y的值:y=a^5+sin(ax)+ln(a+x)+e^ax
#include
#include
#define e 2.71828
main()
{
int a,x;
printf("输入2个实数a,x\n");
scanf("%d%d",&a,&x);
if(a==0&&x==0)printf("不在ln的定义域内\n");
else printf("a^5+sin(ax)+ln(a+x)+e^ax = %lg\n",pow(a,5)+sin(a*x)+log10(a+x),pow(e,a*x));
return 0;
}主要使用头文件math.h里德函数