撇开效率和精度不谈,程序本身有三处错
int PI=0;
int应该改成double
PI=16*arctan(1/5)-4*arctan(1/239);
1/5和1/239是整数除法,结果都是0,应该用实数除法,比如1.0/5.0
for(int i=0;power(x,2*i+1)/(2*i+1)<=1/power(10,15);i++)
中间的<=改成>=,因为通项足够小是停机条件,而不是循环执行的条件