#include "stdio.h"
#include "math.h"
void main()
{
int x;
double sum=0;
int i;
scanf("%d",&x);
for(i=1;i<=100;i++){
sum += pow(-1,i-1)*x/i;
}
printf("sum=%0.2lf",sum);
}
x/i是整除,所以一直为0
改为 y = y+x*1.0/i;
代码逻辑没什么问题,只是x的类型需要定义成double,如果x是int的话除以一个数获取的结果会自动转成int,也就是当x=1时,所有的x/i获取的结果都是0