正数1、2、3 …称为自然数。不超过10的自然数之和为:
sum = 1 + 2 + 3 + ... + 10
使用for循环的自然数之和
#include
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
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的值相加,然后i递增1
。
尽管两个程序在技术上都是正确的,但在这种情况下最好使用for
循环。这是因为迭代次数是已知的。
如果用户输入一个负整数,则上述程序将无法正常运行。这是对上述程序的一些修改,在此程序中,我们一直从用户那里获取输入,直到输入正整数为止。
读取输入,直到输入正整数
#include
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;
}
访问此页面以了解如何使用递归查找自然数之和。