扬声器1:让我们写一个程序, 提示用户输入一个正 整数n,然后打印出 所有的数字的总和 介于1和n。 好了,下面我们有主,我已经 已经预先写入。 并注意这里的顶部 主,我宣布一个诠释n。 然后,我,一个做,而内 循环中,首先打印出 正整数,请。 然后,我继续从得到一个整数 与CS50库的获取用户 INT函数。 然后在我的病情,而在这里,我 确保n大于或 等于1之前,我确实进行 做一些与该值。 我该怎么办呢? 好吧,我打电话,我要去一个函数 打电话给西格玛,代表 资本西格玛,你可能有 从数学课回忆说, 表示要总结的东西 从一个值到另一个。 此外,无论该函数的返回 它的返回值,我要存储 在一个名为答案的变量。 最后,我在主最后一行,我 将打印出的答案是什么。 当然,我们还没有实现 这个函数西格玛。 那么,我们如何去这样做? 嗯,我的文件的底部,我 要进行声明一个函数 返回一个int。 我要去打电话 该函数西格玛。 我要去指定作为输入 该函数也接受一个int。 和我就称呼它,是 层次分明,米而不是n。 但我们可以把它称为 任何东西,我们想。 在这个函数中,我的本体的 要继续使用熟悉的 构造,即一个循环。 但我也要做一点理智 检查,以确保 用户没有向我提供了一些 那我不期待。 尤其是,我要怎么做,如果m是 小于1,并且,有些武断, 我只是要返回0,如果 数不是正 整数,如我所料。 然后,我要声明一个变量 所谓的总和,它初始化为0。 这将最终存储的总和 所有l和m之间的数字。 然后,我将使用一个熟悉的 向前循环结构。 对于int我得到1,i小于 或等于M,I加再加。 然后,该主体内 环,我只是打算做一笔 等于总和再加上我。 或者更简单地说,总和等于加我, 这可以实现相同的结果。 然后最后,我需要返回 我已经计算出的总和。 所以,我想补充的回报总和。 现在,我还没说完呢。 我需要教授C,这 功能确实存在。 所以上面我的档案我要申报 我们所称为函数 原型,相同的签名 我定义函数时使用 刚才。 具体来说,略高于主, 我会为int类型 西格玛,整数M,分号。 如不执行功能 再次,简单地声明它。 如果我现在保存,编译和运行这个 方案,让我们看看我得到的。 让西格玛0点斜线西格玛0。 现在,让我们提供一个正整数 像2,这应该给我 3,因为之间的值 1和2是1加2等于3。 事实上,这就是我得到的。 让我们再次运行它,这 时间,也就是说,3。 所以,我应该得到1加2加 3应该给我6。 而事实上,我也得6。 让我们尝试最后一个值,比如50。 而1,275是我们的答案。