原文: https://www.programiz.com/c-programming/examples/sum-natural-numbers
在此示例中,您将学习计算用户输入的自然数之和。
要理解此示例,您应该了解以下 C 编程主题:
正数 1、2、3… 被称为自然数。 不超过 10 的自然数之和为:
sum = 1 + 2 + 3 + ... + 10
使用for循环的自然数之和
#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循环的自然数之和
#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;}
输出
Enter a positive integer: 100Sum = 5050
在这两个程序中,循环都重复n次。 并且,在每次迭代中,将i的值添加到sum,并且i递增1。
尽管两个程序在技术上都是正确的,但在这种情况下最好使用for循环。 这是因为迭代次数是已知的。
如果用户输入负整数,则上述程序将无法正常运行。 这是对上述程序的一些修改,在该程序中,我们一直从用户那里获取输入,直到输入正整数为止。
读取输入,直到输入正整数
#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;}
访问此页面以了解如何使用递归来查找自然数之和。
