前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小朋友学C语言(11):求1到100的和

小朋友学C语言(11):求1到100的和

作者头像
海天一树
发布2018-04-17 12:22:58
1.3K0
发布2018-04-17 12:22:58
举报
文章被收录于专栏:海天一树

题目:求1+2+3+……+98+99+100 (1)用数学方法求解 (2)编写C语言程序求解

解: (1)数学方法

代码语言:javascript
复制
S = 1+2+3+……+98+99+100
  = (1+100) + (2+99) + (3+98) + …… + (49+52) + (50+51)
  = 101 * 50
  = 5050

(2)C语言编程

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int sum = 0; // 赋初值
    for(int i = 1; i <= 100; i++)
    {
        sum = sum + i;
    }
    printf("total is %d\n", sum);
}

运行结果:

代码语言:javascript
复制
total is 5050

分析: (1)第一次循环 i = 1, sum = sum + i = 0 + 1 = 1,这里右边的sum的值为初值0,将1赋给左边的sum后,sum的最新值变成了1 (2)第二次循环 i = 2, sum = sum + i = 1 + 2 = 3, 这里右边的sum的值已经通过上一步的计算变成了1。把3赋值给左边的sum后,sum的最新值就成了3 (3)第三次循环 i = 3, sum = sum + i = 3 + 3 = 6, 这里右边的sum的值已经通过上一步的计算变成了3。把计算结果6赋值给左边的sum后,sum的最新值就成了6 (4)第四次循环 i = 4, sum = sum + i = 6 + 4 = 10, 这里右边的sum的值已经通过上一步的计算变成了6。把计算结果10赋值给左边的sum后,sum的最新值就成了10 (5)……这样执行一百次后,得到的结果为5050

新知识点: sum = sum + i可以写成sum += i,都是让sum和i相加后,把新的值赋给sum。 以后编程尽量使用+=这种方式。 理由:C语言要通过编译器编译,在编译器没开启优化的情况下,两种写法是完全等价的;编译器开启了优化后,+=的执行速度可能会快一点。(这个先有点印象即可,目前不用深入了解)

作业: (1)调试上面的程序。每次运行到右大括号时,把鼠标悬在sum上面,观察sum的值。 上面的程序会循环100次,调试的时候,循环10次左右就可以step out了。

(2) 把sum = sum + i改成sum += i,运行结果

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int sum = 0; // 赋初值
    for(int i = 1; i <= 100; i++)
    {
        sum += i;
    }
    printf("total is %d\n", sum);
}

(3)在纸上默写这个程序。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海天一树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档