隨機(jī)數(shù)生成器
隨機(jī)數(shù)生成器能隨機(jī)生成0~RAND_MAX之間的整型數(shù),包括0和RAND_MAX。RAND_MAX是一個(gè)符號(hào)常量,定義在庫(kù)cstdlib中,它的值與編譯器有關(guān)。
rand()是生成隨機(jī)數(shù)的函數(shù),每次調(diào)用它都會(huì)隨機(jī)生成一個(gè)0~RAND_MAX的整數(shù)。
基于哨兵的循環(huán)
根據(jù)某個(gè)條件成立與否來(lái)決定是否繼續(xù)的循環(huán)稱(chēng)為基于哨兵的循環(huán)。這個(gè)條件就是哨兵?;谏诒难h(huán)語(yǔ)句有while和do_while。
弦截法求方程f(x)=0在某個(gè)異號(hào)區(qū)間[a,b]的一個(gè)實(shí)根。
程序設(shè)計(jì):
(1)令x1=a,x2=b
(2)連接(x1,f(x1)),(x2,f(x2))的弦與橫軸的交點(diǎn)(x,0)
(3)若f(x)與f(x1)同號(hào)則方程的根在(x,x2)之間,將x作為新的x1,否則將x設(shè)為新的x2。
(4)重復(fù)(2)(3),直到f(x)小于某個(gè)指定的精度為止。
更好地解決循環(huán)中途推出問(wèn)題
基于標(biāo)志的循環(huán):
讀入一個(gè)值;
while(讀入的值與標(biāo)識(shí)志不等){
執(zhí)行需要執(zhí)行的語(yǔ)句;
讀入下一個(gè)值;}```
讀入語(yǔ)句出現(xiàn)了兩次,如果讀入語(yǔ)句很多復(fù)雜就造成了大量代碼的重復(fù)。
解決方案是使用break語(yǔ)句:
while(ture){
讀入數(shù)據(jù);
if(value==標(biāo)志值) break;
執(zhí)行需要執(zhí)行的語(yǔ)句;```
變量的存儲(chǔ)類(lèi)別
1.自動(dòng)變量
自動(dòng)變量是指函數(shù)調(diào)用時(shí)自動(dòng)分配空間,函數(shù)調(diào)用結(jié)束后自動(dòng)回收空間的一類(lèi)變量。自動(dòng)變量用auto聲明,如定義的變量不專(zhuān)門(mén)聲明為其他存儲(chǔ)類(lèi)型,都是自動(dòng)變量。我們使用的變量大多是自動(dòng)變量。
2.靜態(tài)變量
靜態(tài)變量用static聲明。
(1)靜態(tài)全局變量。
不希望多個(gè)源文件共享一個(gè)全局變量時(shí)可以將全局變量定義為靜態(tài)的,表示該全局變量是當(dāng)前源文件所私有的。
(2)靜態(tài)局部變量
當(dāng)靜態(tài)局部變量所在的函數(shù)結(jié)束調(diào)用時(shí),該變量不會(huì)消亡。在下一次調(diào)用函數(shù)時(shí)也不會(huì)對(duì)這個(gè)變量重新分配空間,而是使用原空間的值。
3.寄存器變量
寄存器變量用register聲明。
寄存器變量就是存儲(chǔ)在cpu的存儲(chǔ)器中的變量,減少變量的存取時(shí)間。寄存器變量只能是局部的自動(dòng)變量。
將某個(gè)變量設(shè)為寄存器變量只是表達(dá)了程序員的一種意向,如果系統(tǒng)中沒(méi)有合適的寄存器,編譯器就將它設(shè)為自動(dòng)變量。
4.外部變量
外部變量用extern聲明。
外部變量一定是全局變量。如果在全局變量定義之前或者其他源文件想使用該全局變量,就可以將這個(gè)變量使用extern聲明。