正数 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;
}
访问此页面了解 如何使用递归查找自然数之和。