82 date:2021.2.23
要点:
此类题已经高频率出现多次
详细代码如下:
#include <stdio.h>
#include <math.h>
double fun(double x, int n)
{
double f, t; int i;
/**********found**********/
f = 1.0 ; //由计算表达式可知
t = -1;
for (i=1; i<n; i++)
{
/**********found**********/
t *= (-1)*x/i; //正负号是交错的
/**********found**********/
f += t;
}
return f;
}
void main()
{
double x, y;
x=2.5;
y = fun(x, 15);
printf("\nThe result is :\n");
printf("x=%-12.6f y=%-12.6f\n", x, y);
}
要点: 没错啊! 怎回事
详细代码如下:
#include <stdio.h>
double fun(int n)
{
/*
analyse:
输出多项式的值
*/
// Standard answer:
double sn = 0.0;
int i;
double t = 1.0;
for(i = 1; i <= n; i++)
{
t *= 1.0/i;
sn += t;
}
return sn;
/* Error:
int i = 1 ;
double sn=0.0,t = 1.0;
do{
t *= 1.0/i;
sn += t;
++i;
}while(i > n );
return sn;
*/
}
void main()
{
int n;
double s;
FILE *out;
printf("\nInput n: ");
scanf("%d",&n);
s=fun(n);
printf("s=%f\n",s);
/******************************/
out=fopen("out.dat","w");
fprintf(out,"%f\n",fun(15));
fclose(out);
/******************************/
}