企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# C 程序:计算自然数之和 > 原文: [https://www.programiz.com/c-programming/examples/sum-natural-numbers](https://www.programiz.com/c-programming/examples/sum-natural-numbers) #### 在此示例中,您将学习计算用户输入的自然数之和。 要理解此示例,您应该了解以下 [C 编程](/c-programming "C tutorial")主题: * [C `for`循环](/c-programming/c-for-loop) * [C `while`和`do...while`循环](/c-programming/c-do-while-loops) * * * 正数 **1、2、3...** 被称为自然数。 不超过 10 的自然数之和为: ```c sum = 1 + 2 + 3 + ... + 10 ``` * * * ## 使用`for`循环的自然数之和 ```c #include <stdio.h> int main() { int n, i, sum = 0; printf("Enter a positive integer: "); scanf("%d", &n); for (i = 1; i <= n; ++i) { sum += i; } printf("Sum = %d", sum); return 0; } ``` 上述程序从用户处获取输入并将其存储在变量`n`中。 然后,使用`for`循环计算直到`n`的总和。 * * * ## 使用`While`循环的自然数之和 ```c #include <stdio.h> int main() { int n, i, sum = 0; printf("Enter a positive integer: "); scanf("%d", &n); i = 1; while (i <= n) { sum += i; ++i; } printf("Sum = %d", sum); return 0; } ``` **输出** ```c Enter a positive integer: 100 Sum = 5050 ``` 在这两个程序中,循环都重复`n`次。 并且,在每次迭代中,将`i`的值添加到`sum`,并且`i`递增`1`。 尽管两个程序在技术上都是正确的,但在这种情况下最好使用`for`循环。 这是因为迭代次数是已知的。 如果用户输入负整数,则上述程序将无法正常运行。 这是对上述程序的一些修改,在该程序中,我们一直从用户那里获取输入,直到输入正整数为止。 * * * ## 读取输入,直到输入正整数 ```c #include <stdio.h> int main() { int n, i, sum = 0; do { printf("Enter a positive integer: "); scanf("%d", &n); } while (n <= 0); for (i = 1; i <= n; ++i) { sum += i; } printf("Sum = %d", sum); return 0; } ``` 访问此页面以了解[如何使用递归](https://www.programiz.com/c-programming/examples/natural-number-sum-recursion)来查找自然数之和。