在此示例中,您將學(xué)習(xí)計(jì)算用戶輸入的自然數(shù)之和。
要理解此示例,您應(yīng)該了解以下C語(yǔ)言編程主題:
正數(shù)1、2、3 ...稱為自然數(shù)。不超過(guò)10的自然數(shù)之和為:
sum = 1 + 2 + 3 + ... + 10
#include <stdio.h> int main() { int n, i, sum = 0; printf("輸入一個(gè)正整數(shù): "); scanf("%d", &n); for (i = 1; i <= n; ++i) { sum += i; } printf("Sum = %d", sum); return 0; }
上面的程序從用戶那里獲取輸入并將其存儲(chǔ)在變量n中。然后,使用for循環(huán)來(lái)計(jì)算n總和。
#include <stdio.h> int main() { int n, i, sum = 0; printf("輸入一個(gè)正整數(shù): "); scanf("%d", &n); i = 1; while (i <= n) { sum += i; ++i; } printf("Sum = %d", sum); return 0; }
輸出結(jié)果
輸入一個(gè)正整數(shù): 100 Sum = 5050
在這兩個(gè)程序中,循環(huán)被迭代n次。在每次迭代中,i的值被加到sum中并且i增加1。
雖然這兩個(gè)程序在技術(shù)上都是正確的,但是在這種情況下使用for循環(huán)更好。因?yàn)榈螖?shù)是已知的。
如果用戶輸入一個(gè)負(fù)整數(shù),上述程序就不能正常工作。這里對(duì)上面的程序做了一點(diǎn)小小的修改,在這個(gè)程序中,我們一直從用戶那里獲取輸入,直到輸入了一個(gè)正整數(shù)。
#include <stdio.h> int main() { int n, i, sum = 0; do { printf("輸入一個(gè)正整數(shù): "); scanf("%d", &n); } while (n <= 0); for (i = 1; i <= n; ++i) { sum += i; } printf("Sum = %d", sum); return 0; }
訪問(wèn)此頁(yè)面以了解如何使用遞歸找到自然數(shù)之和。