當前位置:才華齋>計算機>C語言>

C語言教程例項:1到100求和

C語言 閱讀(3.28W)

這篇文章主要講我們介紹如何利用C語言去解決一個簡單的數學問題,1+2+...+100=?

C語言教程例項:1到100求和
C語言教程例項:1到100求和

首先我們將問題簡化一下,只求1+2=?相信每位同學都能很快的寫出c語言的程式。按照以前的思路,我們先寫程式模板,然後在指定的地方編寫程式碼即可。

#include

int main(){

int a1 = 1;

int a2 = 2;

int sum =a1 + a2;

return 0;

}

是不是很快就寫出了程式程式碼,既然1+2我們能求,那麼1+2+...+100是不是也是同樣的道理。

#include

int main(){

int a1 = 1;

int a2 = 2;

...

int a100 =100;

int sum =a1 + a2+...+a100;

return 0;

}

(上面的'程式碼並不是完整的程式碼,其中的省略號部分需要大家自己補全。)

這就是我們解決1到100求和的第一種解法。是不是很有成就感!!!

上面的程式碼雖然能夠解決問題,但是大家在編寫程式碼的時候,是不是感覺有點惱火。

我們來分析一下以上程式碼的問題,最主要的問題在於我們需要定義101個整型變數,其中100個a1, a2,..., a100還有一個sum。那麼是否可以減少變數定義的個數呢?

我們需要變數來儲存1,2,...,100但是又不想使用a1,a2, ..., a100這種方式。那麼是否可以只使用1個變數就可以呢?即只定義一個變數i,就可以實現儲存1,2,...,100。

在經過一番分析之後,我們發現可以利用C語言的迴圈結構來實現。

int i = 0;

for( i = 1; i <= 100; i++)

上面的程式碼是不是就可以實現只使用一個變數i就能儲存1,2,...,100。

以前我們需要100個變數來儲存1,2,...,100現在我們只需要1個變數就可以了,是不是進步了很多。

那麼接下來便是如何實現求和呢?

我們可以定義一個變數sum來儲存當前最新的求和結果,然後去加i,並將求和的結果更新到sum,那麼sum本質就是一個累加器。(如想了解更多,請關注《C語言教程累加器》)

int i = 0;

int sum = 0;

for(i = 1; i <= 100; i++){

sum = sum +i;

}

以上程式碼是不是很簡潔了,那麼這是不是最好的答案呢?還可以改進嗎?

其實我們還可以有更好的方式,那就是直接使用數學公式就可以求解。

int sum = (1+100)*100 / 2;

直接一行程式碼就可以得到答案,這就是數學的魅力哈!所以小夥伴們,要不要好好學習數學!!!

  總結

從上面的分析我們知道,在解決一個問題的時候,我們首先想到的大多是一些比較簡單的解法,但是隨著對問題分析的不斷深入,我們可以不斷的改進解法,最終會找到適合你自己的解決問題的方法。