求:
s=1+1/1!+1/2!+1/3!......+1/n!
例输入15,得s=2.718282
下面程序那错了?
#include "stdio.h"
void fun(char *s,int n){
int i,j,k;
for(k=1;k<=n;k++){
for(i=1,j=1;i<=n;i++) j*=i;
*s+=1.0/j;
}
}
main(){
int n=15;
double s=1.0;
clrscr();
fun(&s,n);
printf("\n n=%f\n",s);
}
參考答案:错在传给fun的值跟声明的参数的类型不一致,你的声明是
void fun(char *s,int n),结果你调用的时候传进去的指针是double类型的指针。
你把你的函数头改为
void fun(double *s,int n)