编译结果怎么样才能得出2561327494111820313?
看了网上有说改int为long int的,结果还是不对。用的编译器是VS2019。求老哥解答。
没仔细看,但是打印语句有问题,换成
printf("%ld\n", s);
int main(){
double sum =0;
double i = 1;
double h = 1;
for(;i<=20;i++){
h=h*i;
sum+=h;
}
printf("%.20lg\n", sum);
}
打印长整型有符号用%ld,无符号用%lu
算法不对吧 1!+2!+3!...20!不是这么个算法吧
试试这个,刚才做了一道这种改错题,应该是对的
#include <stdio.h>
void main( )
{ float fun( int n ) ;
int m ;
float s=0.0 ;
for(m=1;m<=20;m++)
s+= fun(m) ;
printf("s=1!+2!+3!+...+20!=%f\n",s);
}
float fun( int n )
{
int i;
float z=1;
for(i=1;i<=n;i++)
z= z*i ;//求阶乘
return z ;
}