正数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: 100 Sum = 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; }
访问此页面以了解如何使用递归求自然数之和.