DAVID J.馬蘭:假設我們想寫 一個程序,要求每個人都在 一個室為他們的年齡,然後打印 出多大年紀的人將是一個 一年以後? 現在,很明顯的算術本 問題將是相當 簡單。 但有趣的問題是,如果我們 不知道提前多少人 將要在這個房間裡,怎麼 我們可以去存儲 所有的年齡? 好吧,讓我們一起來看看。 首先,讓我們先提示 用戶,因為我在這裡所做的,為 人在房間裡使用數量 調用getInt,為了一個do-whil​​e循環 得到一個整數n。 假設我們現在要問每個這樣的 人在房間裡為他們的年齡。 嗯,我的直覺是使用一個 循環做提示,但我也 需要存儲的地方 這些人的年齡。 我的第一本能會有 使用變量的第 人的年齡,另一個變量 第二人的年齡, 排序沿線。 詮釋時代 - 好了,讓我們叫它為1 的第一人。 詮釋2歲為第二人。 詮釋第3歲為第三人。 但是且慢,這也許不是 下井的最佳路徑。 因為我事先不知道的不要 寫作和編譯該程序如何 很多用戶有將要。 ,而且,如果有多達 100用戶,100聲明的變量 那種奇怪的命名一樣,這並不 感覺像最優秀的設計。 嗯,幸好還存在另一種 變量的類型稱為陣列 使我們能夠存儲任意數量的整數 在它的內部,即使我們不知道 我寫程序的時候有多少 我們將這樣的整數需要。 因此,讓我們原路返回和刪除這些 幾個整數,而是更換 以稱為一個變量, 說,年齡,複數。 但是,讓我們進一步明確在這條線 在方括號中的代碼,我們 要Ñ整數。 因此,我們將共同 參考這些整數的年齡。 現在,在短短的一瞬間,我就可以得到 在每一個在這個數組中的整數 同樣用方括號的方式 符號,從0開始。 因此,讓我們現在在一個循環的進行 提示用戶輸入他們的年齡。 對於int我得到0。 餘小於N,人的數目 在房間裡,我加再加。 現在這個循環中,讓我們說 人數字,百分比我的年齡的printf 是一個佔位符,逗號。 而現在,而不是從開始計數 0在程序本身,讓我們在 至少我增量1,這樣一個正常的 使用該程序的人 不必計算像 計算機科學家的威力。 讓我們現在做的年齡,支架我,從而 指定第i個年齡在我們的 不同年齡的數組是會得到 調用getInt的返回值。 現在,下面這個循環中,讓我們繼續 假設一些時間的推移。 而且,我們現在進行的另一個循環 實際上每個人的年齡在房間裡 通過一年。 如此反复,對於int我得到0,我是少 N多,人們在數 房間裡,我加再加。 現在這裡面循環,讓我們說 從現在開始數人printf的一年, %的我是一個佔位符,將 是,我百分之另一種是 佔位符,歲。 然後插入到這些 佔位符,讓我們先說我加 1,讓我們再次開始計數 對於從1的用戶。 然後讓我們插上那個人的年齡 因為年齡支架我加1,從而 指定去得到第i個年齡在我們的 年齡的數組,把它加1,然後 插入款項到我們的佔位符, 接近括號,分號。 現在,讓我們用make編譯這個程序 年齡,讓我們用點運行 斜線年齡。 並假設只有三個 房間裡的人,有人是18, 有人是19,有人為20。 那麼,在一年的每個,那些人 將是19,20,和21, 分別。