C语言:用循环累加
来源:互联网 发布:sql union会去重吗 编辑:程序博客网 时间:2024/06/07 06:23
任务代码:
(1)1-1/2+2/3+.....(m-1)/m的和
#include <stdio.h>#include <math.h>int main(){ float a,b=1,m,sum=0,n; printf("请输入m:"); scanf("%f",&m); for(n=2;n<=m;n++) { sum=sum+b*((n-1)/n); b=-b; } printf("sum is :%f",sum); return 0;}
(2)求1!+2!+3!...m!和
#include<stdio.h>int main(){ float i,j,fFactoria_result=1,fPlus_total=0,m; /*分成两部分来做,一部分是每一项阶乘的结果fFactoria_result,两外一向是所有结果和fPlus_total=0*/ printf("请输入m:"); scanf("%f",&m); for(i=1;i<=m;i++)/*加和循环*/ { for(j=1;j<=i;j++)/*阶乘循环*/ { fFactoria_result=fFactoria_result*j; } fPlus_total=fPlus_total+fFactoria_result; fFactoria_result=1;/*此处尤其注意,在跳出阶乘循环后,要归1*/ } printf("1!+2!+....m!的结果为:%f",fPlus_total); return 0;}
用while和语句来做:
#include<stdio.h>int main(){//用while语句来执行阶乘和 int i=1,fPlus_total=0,m,fFactoria_result,j; printf("请输入数字m:"); scanf("%d",&m); while(i<=m) { fFactoria_result=1,j=1;//此处最重要的是在跳出阶乘循环后将f初始化 while(j<=i) { fFactoria_result=fFactoria_result*j; j++; } fPlus_total=fPlus_total+fFactoria_result; i++; } printf("最终结果为:%d",fPlus_total); return 0;}
while和for的语句的优化:
#include<stdio.h>int main(){//用while语句来执行阶乘和优化方案 int fPlus_total=0,m,fFactoria_result=1,j=1; printf("请输入数字m:"); scanf("%d",&m); while(j<=m) { fFactoria_result=fFactoria_result*j;//此优化方案主要抓住了,j是和循环次数i其实是相等的,所以省略了i fPlus_total=fPlus_total+fFactoria_result; j++; } printf("最终结果为:%d",fPlus_total); return 0;}
#include<stdio.h>int main(){ float j,fFactoria_result=1,fPlus_total=0,m; /*分成两部分来做,一部分是每一项阶乘的结果fFactoria_result,两外一向是所有结果和fPlus_total=0*/ printf("请输入m:"); scanf("%f",&m); for(j=1;j<=m;j++)/*阶乘循环*/ { fFactoria_result=fFactoria_result*j; fPlus_total=fPlus_total+fFactoria_result; } fFactoria_result=1;/*此处尤其注意,在跳出阶乘循环后,要归1*/ printf("1!+2!+....m!的结果为:%f",fPlus_total); return 0;}
(3)求1!+1/2!+1/3!+...1/m!和
#include<stdio.h>int main(){ float i,j,fFactoria_result=1,fPlus_total=0,m; /*分成两部分来做,一部分是每一项阶乘的结果fFactoria_result,两外一向是所有结果和fPlus_total=0*/ printf("请输入m:"); scanf("%f",&m); for(i=1;i<=m;i++)/*加和循环*/ { for(j=1;j<=i;j++)/*结成循环*/ { fFactoria_result=fFactoria_result*j; } fPlus_total=fPlus_total+1.0/fFactoria_result;//主要更改此处 fFactoria_result=1; } printf("1!+1/2!+....1/m!的结果为:%f",fPlus_total); return 0;}
(4)求1!-1/2!+1/3!+...1/m!和
#include<stdio.h>int main(){ float i,j,fFactoria_result=1,fPlus_total=0,m; int sign=1;//符号计算 /*分成两部分来做,一部分是每一项阶乘的结果fFactoria_result,两外一向是所有结果和fPlus_total=0*/ printf("请输入m:"); scanf("%f",&m); for(i=1;i<=m;i++)/*加和循环*/ { for(j=1;j<=i;j++)/*结成循环*/ { fFactoria_result=fFactoria_result*j; } fPlus_total=fPlus_total+sign*(1.0/fFactoria_result); fFactoria_result=1; sign=-sign;//此处符号变换 } printf("1!+1/2!+....1/m!的结果为:%f",fPlus_total); return 0;}
(5)编程序,输出1/3-3/5+5/7-7/9…+19/21的结果
#include <stdio.h>#include <stdlib.h>int main(){ printf("此程序执行编程序,输出1/3-3/5+5/7-7/9…+19/21的结果\n"); float n,sum=0,sign=1,fPer; for(n=1;n<20;n++) { fPer=sign*(2*n-1)/(2*n+1); sum=sum+fPer; sign=-sign; } printf("结果为:%f",sum); return 0;}
执行情况:
知识总结:
如果有需要进行一加一减交替进行的需要,可以通过设置b=1然后切换b=-b;来操作
心得体会:
查代码逻辑错误的最好方法就是写在纸上,帮助记录,能达到高效
阅读全文
0 0
- C语言:用循环累加
- C语言及程序设计初步例程-34 用循环累加
- C语言初步-第34讲:用循环累加(分数的累加)
- C语言初步-第34讲:用循环累加(麻烦的累加涨功夫)
- C语言第十一篇:循环累加
- 《C语言及程序设计》实践项目——用循环累加
- 《C语言及程序设计》程序阅读——用循环累加
- 第1周 C语言及程序设计初步 例程-6 用循环累加
- 第二周《C语言及程序设计》实践参考34 用循环累加
- C语言求累加
- C语言 累加运算
- 34 用循环累加
- c语言 经典累加算法
- C语言:循环名句运用 累加器输入一个数值进行累加,输入13
- C语言基础 for循环计算1到100的累加和
- c语言题1--累加数
- C语言分数的正负交叉累加
- C语言实现累加和累乘
- 字符类元素个数统计
- Nginx+WSGI生产环境static文件解决
- 选择Python2.x还是应该选择Python3.x
- Mybatis总结《四》实体类和数据库中的字段不对应时的处理
- atof函数实现代码,原理
- C语言:用循环累加
- HDU 4825 Xor Sum (01字典树模板题)
- linux虚拟机网络配置
- [IOS APP]蒋勋说西洋美学史
- 数据分析(入门篇)-第一章-高效处理千万数据-Part2(Microsoft Query工具)
- 大数据环境搭建(测试)
- Angular学习资料
- java去掉空格
- CSS布局模式