在此示例中,您将学习计算用户输入的自然数之和。
要理解此示例,您应该了解以下C语言编程主题:
正数1、2、3 ...称为自然数。不超过10的自然数之和为:
sum = 1 + 2 + 3 + ... + 10
#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总和。
#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;
}
访问此页面以了解如何使用递归找到自然数之和。