题目内容:
计算并输出s的值。s的计算方法见下式,其中m为实数,其值由键盘读入。计算时,要求最后一项的绝对值小于1e-4,输出结果保留两位小数。
输入格式:实数m,格式控制串为"%lf"
输出格式:式子的值,输出格式控制串为"%.2f\n"
输入样例:0.2
输出样例:0.18
#include<stdio.h>
#include<math.h>
int main()
{
int i = 1, sign = 1, fac = 0;
double item, s = 0, m;
printf("Please enter a number:");
scanf_s("%lf", &m);
do
{
fac *= i;
item = sign * pow(m, (double)i) /(double)fac;
s += item;
i++;
sign = -sign;
} while (fabs(item>=1E-4));
printf("s=%.2f\n", s);
return 0;
}
当我把i前面的double去掉的时候运行时输入值后无反应,似乎进入死循环