跳到主要内容

C 编程:计算自然数之和的程序

要理解这个例子,你应该具备以下 C编程 主题的知识:

正数 1, 2, 3... 被称为自然数。前 10 个自然数之和为:

sum = 1 + 2 + 3 + ... + 10

使用 for 循环计算自然数之和

#include <stdio.h>
int main() {
int n, i, sum = 0;

printf("请输入一个正整数:");
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("请输入一个正整数:");
scanf("%d", &n);
i = 1;

while (i <= n) {
sum += i;
++i;
}

printf("Sum = %d", sum);
return 0;
}

输出

输入一个正整数:100
Sum = 5050

在这两个程序中,循环迭代 n 次。在每次迭代中,将 i 的值加到 sum 上,并将 i 增加 1

虽然两个程序在技术上都是正确的,但在这种情况下最好使用 for 循环。因为迭代次数是已知的。

上述程序在用户输入负整数时无法正确工作。以下是对上述程序的小修改,我们将持续从用户那里获取输入,直到输入了一个正整数。

读取输入直到输入了一个正整数

#include <stdio.h>
int main() {
int n, i, sum = 0;

do {
printf("请输入一个正整数:");
scanf("%d", &n);
} while (n <= 0);

for (i = 1; i <= n; ++i) {
sum += i;
}

printf("Sum = %d", sum);
return 0;
}

访问此页面了解如何使用递归计算自然数之和