C語言菜鳥基礎(chǔ)教程之求1到100的和
題目:求1+2+3+……+98+99+100
(1)用數(shù)學(xué)方法求解
(2)編寫C語言程序求解
解:
(1)數(shù)學(xué)方法
S = 1+2+3+……+98+99+100 = (1+100) + (2+99) + (3+98) + …… + (49+52) + (50+51) = 101 * 50 = 5050
(2)C語言編程
#include <stdio.h>
int main()
{
int sum = 0; // 賦初值
for(int i = 1; i <= 100; i++)
{
sum = sum + i;
}
printf("total is %d\n", sum);
}
運行結(jié)果:
total is 5050
分析:
(1)第一次循環(huán)
i = 1, sum = sum + i = 0 + 1 = 1,這里右邊的sum的值為初值0,將1賦給左邊的sum后,sum的最新值變成了1
(2)第二次循環(huán)
i = 2, sum = sum + i = 1 + 2 = 3, 這里右邊的sum的值已經(jīng)通過上一步的計算變成了1。把3賦值給左邊的sum后,sum的最新值
就成了3
(3)第三次循環(huán)
i = 3, sum = sum + i = 3 + 3 = 6, 這里右邊的sum的值已經(jīng)通過上一步的計算變成了3。把計算結(jié)果6賦值給左邊的sum后,sum的最新值就成了6
(4)第四次循環(huán)
i = 4, sum = sum + i = 6 + 4 = 10, 這里右邊的sum的值已經(jīng)通過上一步的計算變成了6。把計算結(jié)果10賦值給左邊的sum后,sum的最新值就成了10
(5)……這樣執(zhí)行一百次后,得到的結(jié)果為5050
新知識點:
sum = sum + i可以寫成sum += i,都是讓sum和i相加后,把新的值賦給sum。
以后編程盡量使用+=這種方式。
理由:C語言要通過編譯器編譯,在編譯器沒開啟優(yōu)化的情況下,兩種寫法是完全等價的;編譯器開啟了優(yōu)化后,+=的執(zhí)行速度可能會快一點。(這個先有點印象即可,目前不用深入了解)
作業(yè):
(1)調(diào)試上面的程序。每次運行到右大括號時,把鼠標(biāo)懸在sum上面,觀察sum的值。
上面的程序會循環(huán)100次,調(diào)試的時候,循環(huán)10次左右就可以step out了。
(2)
把sum = sum + i改成sum += i,運行結(jié)果
#include <stdio.h>
int main()
{
int sum = 0; // 賦初值
for(int i = 1; i <= 100; i++)
{
sum += i;
}
printf("total is %d\n", sum);
}
(3)在紙上默寫這個程序。
相關(guān)文章
C++機房預(yù)約系統(tǒng)實現(xiàn)流程實例
這篇文章主要介紹了C++機房預(yù)約系統(tǒng)實現(xiàn)流程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-10-10
c++中?isupper()和islower()函數(shù)詳解
在C++中,islower()和isupper()是C++標(biāo)準庫中提供的兩個字符判斷函數(shù),這兩個函數(shù)用于判斷一個字符是否為小寫字母或大寫字母,這篇文章主要介紹了c++?isupper()?islower()的相關(guān)資料,需要的朋友可以參考下2024-05-05
Qt實現(xiàn)QLineEdit輸入前提示輸入范圍并用正則表達式限制輸入范圍
在日常開發(fā)過程中QLineEdit作為輸入框,有時要限制輸入的內(nèi)容,這篇文章主要給大家介紹了關(guān)于Qt實現(xiàn)QLineEdit輸入前提示輸入范圍并用正則表達式限制輸入范圍的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-05-05
C語言函數(shù)基礎(chǔ)教程分類自定義參數(shù)及調(diào)用示例詳解
這篇文章主要為大家介紹了C語言函數(shù)的基礎(chǔ)教程,主要包含C語言函數(shù)的分類,C語言函數(shù)自定義,C語言函數(shù)的參數(shù)及C語言函數(shù)的調(diào)用示例詳解,有需要的朋友可以借鑒參考下2021-11-11

