《(31)--5.7 常见问题举例(一)C语言程序设计基础.ppt》由会员分享,可在线阅读,更多相关《(31)--5.7 常见问题举例(一)C语言程序设计基础.ppt(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、5.7 5.7 常见问题举例(一)常见问题举例(一)5.7.1累加和累乘问题累加和累乘问题C语言常见问题举例累加和累乘问题累加和累乘问题 什么是累加和累乘问题求解多个项的和或乘积如:求1+2+3+n的和求1-2+3-4+的和求n!求1!+2!+3!+n!如:用 公式求 的近似值,直到最后一项的绝对值小于 10-6 为止。求e的值,e1+1/1!+1/2!+1/n!,要求直至最后一项的值小于10-4。求满足如下条件的最大的n。12+22+32+n21000C语言常见问题举例累加和累乘问题累加和累乘问题 怎么求解累加和累乘问题用循环找出要累加或累乘的数据项及通式;找出数据项中有规律变化的数据,用循
2、环变量表示;找出循环变量的起始(项数);确定循环条件;确定循环体内的语句。基本要素关键要素和变量初值一般为0;积变量初值一般为1.C语言常见问题举例累加和累乘问题累加和累乘问题 已知项数和通项的已知项数和通项的累加或累加或累累乘乘问题问题案例1:+和的类型和的类型 s=0;int i;/*i是循环变量是循环变量*/for(i=第第1个数个数;i=最后一个数最后一个数;i+)s+=通项通项;表示累加式表示累加式中按中按规律律变化的数化的数案例1:+C语言常见问题举例累加和累乘问题累加和累乘问题 已知通项和累加结束条件已知通项和累加结束条件的的累加或累乘累加或累乘问题问题案例3:求s的值,s=1+
3、x+x2/2!+x3/3!+xn/n!,要求直至|xn/n!|10-6 案例4:求满足如下条件的最大的n。12+22+32+n21000找出要累加或累乘的数据项及通式;找出数据项中有规律变化的数据,用循环变量表示;确定循环条件;确定循环体内的语句。在问题中,用while或do while实现C语言常见问题举例累加和累乘问题案例3:求s的值,s=1+x+x2/2!+x3/3!+xn/n!,要求直至|xn/n!|=10-6 循环体内语句 s=s+通式和变量s的初值应为多少?分母阶乘积变量的初值应为多少?xi怎么计算,可以用pow函数i!怎么计算,用(i-1)!*i double s,t,f,x;i
4、nt i=0;s=0;t=1;f=1;scanf(%lf,&x);#include#include int main()while(fabs(t)=1E-6)s=s+t;i+;f=f*i;/*累乘求分母*/t=pow(x,i)/f;/*累加通式*/printf(s=%6.2fn,s);return 0;案例3:求s的值,s=1+x+x2/2!+x3/3!+xn/n!,要求直至|xn/n!|10-6 C语言常见问题举例累加和累乘问题案例4:求满足如下条件的最大的n。12+22+32+n21000分析:累加项 12、22、32、n2累加项的通式 i2循环条件 和s1000则停止累加 循环体内语句
5、s=s+通式n是要求解的结果用do while循环实现;和变量s初值为0 int i=1;int s=0;#include int main()do s=s+i*i;/*累加通式*/i+;while(s=1000);printf(“s=%d,n=%dn,s,i);return 0;案例4:求满足如下条件的最大的n。12+22+32+n21000结果不果不对,n为15时,和和值已已经超超过1000了了 int i=0;int s=0;do i+;s=s+i*i;/*累加通式*/while(s=1000);结果不果不对,n为14时,和和值已已经超超过1000了了printf(“s=%d,n=%dn,s-i*i,i-1);为什么输出i-1就对了呢?常见问题举例累加和累乘问题已知项数和通项的问题已知通项和累加终止条件的问题注意分析问题,找出累加或累乘通项,找出有规律变化的部分,找出循环条件和循环体内语句