1. 用公式1-1/2+1/4-1/7..... 求s的近似值,直到最后一项的绝对值小于10-4为止。用C语言怎么编程,求答案 5

 我来答
White_MouseYBZ
2017-07-10 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6653万
展开全部

用一个for循环完成计算。由于分母的增量是首项为0,公差为1的等差数列,所以用一从1开始、增量为1的计数变量i兼作分母的增量;分母用一个从1开始、增量为i的变量n承载,另用一个浮点变量t动态记录每项的绝对值,当t>=题设要求1.0E-4时,将t加(i为奇数)或减(i为偶数)于浮点和变量s,直到t<1.0E-4时为止。代码如下:

#include "stdio.h"
int main(int argc,char *argv[]){
int i,n;
double t,s;
for(s=0.0,t=n=i=1;t>=1.0E-4;n+=i++)//n是分母,i为项序兼作n的增量(首项为0公差为1的等差数列)
s += i&1 ? t=1.0/n : -(t=1.0/n); //t是项绝对值,i从1开始,奇数项取正,偶数项取负将t累加至s
printf("The result is %g %d\n",s,i);//输出结果
return 0;
}

运行结果如下:

百度网友906779cfc
2012-03-31 · TA获得超过522个赞
知道小有建树答主
回答量:363
采纳率:0%
帮助的人:436万
展开全部
#define PRECISION 0.00001
void main(void){
float lastValue = 0.0f, totalValue=0.0f; //lastValue 最后一项的值,totalValue就是s
int symbol=1, i = 1,j = 1; //symbol用来表示正负号,i是分母,j是分母递增记录
do{
lastValue = ((float)symbol) / i; //必须先强转除号操作数中的一个,不然只会得到0
i+=j; //改变分母为下一次计算的分母
j++; //分母递增值增加
symbol *= -1; //改变符号
totalValue += lastValue;
}while(lastValue > PRECISION || -lastValue > PRECISION); //判断最后一项的绝对值
printf("s is: %f",totalValue );
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式