接近8的有两种情况,一种是小于8,一种是大于8,要比较出最接近的那个,再输出s值和对应的n值。
声明一个int型变量n作为分母兼作项数记数变量,声明一个double型变量s记录前n项之和;利用do~while语句,n从1开始到当前项的浮点和小于8时继续循环,否则退出。退出循环后,比较s-8和8-(s-1.0/n),取小者(相等时取前一项)的最后一项的n便是题解。代码如下:
#include "stdio.h"运行结果如下:
do while 循环后s不是大于8吗
追答也是,我失误了,不好意思。我给你改改
#include "stdio.h"
void main()
{
double s=1.0;
int n=1;
do
{
++n;
s+=1.0/n;
}while(s(8-(s-1.0/(n-1)))
printf("n=%d,s=%lf",n-1,s-1.0/(n-1));
else
printf("n=%d,s=%lf",n,s);
}