W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
另舉一個(gè)泛化的例子:想象一下,你需要一個(gè)可以打印任意長(zhǎng)度的乘法表,而不僅僅是6×6的表。你可以為printMultTable添加一個(gè)參數(shù):
void printMultTable (int high) {
int i = 1;
while (i <= high) {
printMultiples (i);
i = i + 1;
}
}
我用參數(shù)high替代6。如果我用參數(shù)值7調(diào)用printMultTable,我將得到輸出:
1 2 3 4 5 6
2 4 6 8 10 12
3 6 9 12 15 18
4 8 12 16 20 24
5 10 15 20 25 30
6 12 18 24 30 36
7 14 21 28 35 42
一切很好,除了一點(diǎn):我可能想讓這個(gè)表變?yōu)榉疥嚕ㄐ袛?shù)和列數(shù)一樣)。這意味著我需要為printMultiples添加另一個(gè)參數(shù)來(lái)指定表的列數(shù)。
絮叨幾句,我也把這個(gè)參數(shù)命名為high,說(shuō)明了不同函數(shù)可以有相同名字的參數(shù)(如同局部變量):
void printMultiples (int n, int high) {
int i = 1;
while (i <= high) {
cout << n*i << " ";
i = i + 1;
}
cout << endl;
}
void printMultTable (int high) {
int i = 1;
while (i <= high) {
printMultiples (i, high);
i = i + 1;
}
}
注意,當(dāng)我添加一個(gè)新的參數(shù),我必須改變函數(shù)的第一行(即接口或原型),同時(shí)必須修改printMultTable中調(diào)用函數(shù)的地方。正如所料,這段程序生成了一個(gè)7×7的方陣:
1 2 3 4 5 6 7
2 4 6 8 10 12 14
3 6 9 12 15 18 21
4 8 12 16 20 24 28
5 10 15 20 25 30 35
6 12 18 24 30 36 42
7 14 21 28 35 42 49
當(dāng)你適當(dāng)?shù)姆夯粋€(gè)函數(shù)以后,你常常會(huì)發(fā)現(xiàn)程序的輸出結(jié)果有一些意外的性質(zhì)。比如,你可能注意到了,乘法表示對(duì)稱的,因?yàn)閍b=ba,所以表中所有的項(xiàng)都出現(xiàn)了兩次。你可以只打印半張表以省墨。將
printMultiples (i, high);
改為
printMultiples (i, i);
你將得到輸出:
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
至于其工作原理,就留給你分析了。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: