编程,输入1个正实数eps,计算并输出下式的值,直到最后一项的绝对值小于eps。

 输入输出示例:
  Input eps:0.00001
  S = 0.866977
#include <stdio.h>#include <math.h>int main(){ int sign=1,a=1.0; double eps; double s=0.0,b=1.0; printf("Input eps=\n"); scanf("%lf",&eps); while(fabs(a)<eps); { s=s+a; b=b+4; sign=-sign; a=sign/b; } printf("s=%f",s); return 0;}
求大神看哪错了,在线等 谢谢


#include <stdio.h>
#include <math.h>
int main()
{
int sign = 1;
double a = 1.0;
double eps = 0;
double s = 0.0, b = 1.0;
printf("Input eps=\n");
scanf("%lf", &eps);
//while (fabs(a)<eps); //这里不能有分号
while (fabs(a)>eps)
{
s = s + a;
b = b + 4;
sign = -sign;
a = sign / b;
}
printf("s=%f", s);
return 0;
}

追问

分号去了还是不对 和输入输出示例不一样

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
while(fabs(a)>eps)
把这块改掉再试试,
while后面没有分号
小于号改成大于号追问

为什么要改成大于

追答

题目条件是:直到最后一项的绝对值小于eps
也就是说最后一项绝对值小于eps时就跳出,那就是说不小于eps时就继续循环,因此改成大于,当然你也可以写成大于等于,不过一般不回等于

本回答被网友采纳
相似回答