#include <stdio.h>
#include <math.h>
int main(void){
int flag,div;
flag=1;
div=1.0;
double eps;
double sum=0;
double item=1.0;
again:
printf("输入一个不大于1的正实数:");
scanf("%lf",&eps);
while(eps>1.00||eps<=0){
printf("输入错误,请输入一个不大于1的正实数:");
scanf("%lf\n",&eps);
}
while(fabs(item)>=eps){
item=flag*1.0/div;
sum=sum+item;
flag=-flag;
div=div+2;
}
printf("当小于%.4f时的值是%.6f\n",eps,sum);
goto again;
fflush(stdin);
getchar();
return 0;
}
这样就没有然后啦!!
#include <stdio.h>
#include <math.h>
int main(void){
int flag,div;
flag=1;
div=1.0;
double eps;
double sum=0;
double item=1.0;
int count=1;//正确输入次数
again:
//printf("输入一个小于1的正实数:");
//scanf("%lf",&eps);
//while(eps>=1.00||eps<=0){
//printf("输入错误,请输入一个小于1的正实数:");
//scanf("%lf\n",&eps);
// }
while(1){
printf("第%d次正确输入一个不大于1的正实数:",count);
scanf("%lf",&eps);
if(eps>1.00||eps<=0){
printf("输入错误,请重新输入!\n");
continue;
}else{
break;
}
}
while(fabs(item)>=eps){
item=flag*1.0/div;
sum=sum+item;
flag=-flag;
div=div+2;
}
count= count+1;
printf("当最后一项小于%.4f时的值是%.6f\n",eps,sum);
goto again;
fflush(stdin);
getchar();
return 0;
}
进入死循环
while(fabs(item)>=eps){
item=flag*1.0/div;
....
}
谢谢!!