1. 从零开始理解累加问题
第一次接触编程的人总会遇到这个经典问题——计算1到100的累加和。这就像小时候玩搭积木,一块一块往上堆,最后看看总共用了多少块。在C语言里实现这个功能,不仅能帮我们理解循环结构的基本原理,还能掌握变量和运算符的使用技巧。
记得我大学时第一次写这个程序,犯了个低级错误——忘记初始化累加变量,结果输出了一个莫名其妙的超大数。教授笑着说:"计算机很诚实,你给什么它就算什么。"这个教训让我至今记忆犹新。实际上,1到100的累加可以用数学公式n(n+1)/2直接算出5050,但用程序实现的过程才是我们学习的重点。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 基础实现方案解析
2.1 最朴素的for循环实现
c复制#include <stdio.h>
int main() {
int sum = 0; // 千万记得初始化!
for(int i=1; i<=100; i++) {
sum += i;
}
printf("1到100的和是:%d\n", sum);
return 0;
}
这个版本就像老实的会计,一笔一笔地把数字加起来。for循环的三部分很清晰:
int i=1:从1开始i<=100:到100结束i++:每次加1
关键细节:sum必须初始化为0,否则会累加内存中的随机值。这是新手最容易栽跟头的地方。
2.2 while循环的变体写法
有些程序员更喜欢while的简洁:
c复制int i=1, sum=0;
while(i<=100) {
sum += i++;
}
注意这里的i++放在了表达式里,相当于先使用i的值,再自增。这种写法虽然省了一行代码,但可读性稍差,建议新手先明确分开写。
2.3 数学公式的降维打击
高斯小时候发现的公式确实高效:
c复制int sum = 100*(100+1)/2; // 5050
但这种方法失去了练习编程结构的意义,适合在需要极致性能时使用。有趣的是,现代编译器对简单循环会自动优化成这种形式。
3. 深入理解程序执行过程
3.1 内存中的变量变化
让我们用表格模拟前几次循环:
| 循环次数 | i值 | sum值
