1 00:00:00,000 --> 00:00:03,160 >> DAVID J.馬蘭:假設我們想寫 一個程序,要求每個人都在 2 00:00:03,160 --> 00:00:06,740 一個室為他們的年齡,然後打印 出多大年紀的人將是一個 3 00:00:06,740 --> 00:00:07,520 一年以後? 4 00:00:07,520 --> 00:00:09,900 現在,很明顯的算術本 問題將是相當 5 00:00:09,900 --> 00:00:10,660 簡單。 6 00:00:10,660 --> 00:00:14,090 但有趣的問題是,如果我們 不知道提前多少人 7 00:00:14,090 --> 00:00:16,790 將要在這個房間裡,怎麼 我們可以去存儲 8 00:00:16,790 --> 00:00:17,980 所有的年齡? 9 00:00:17,980 --> 00:00:19,680 好吧,讓我們一起來看看。 10 00:00:19,680 --> 00:00:22,760 >> 首先,讓我們先提示 用戶,因為我在這裡所做的,為 11 00:00:22,760 --> 00:00:26,410 人在房間裡使用數量 調用getInt,為了一個do-whil​​e循環 12 00:00:26,410 --> 00:00:28,220 得到一個整數n。 13 00:00:28,220 --> 00:00:32,310 假設我們現在要問每個這樣的 人在房間裡為他們的年齡。 14 00:00:32,310 --> 00:00:35,820 嗯,我的直覺是使用一個 循環做提示,但我也 15 00:00:35,820 --> 00:00:37,840 需要存儲的地方 這些人的年齡。 16 00:00:37,840 --> 00:00:40,760 我的第一本能會有 使用變量的第 17 00:00:40,760 --> 00:00:43,690 人的年齡,另一個變量 第二人的年齡, 18 00:00:43,690 --> 00:00:44,780 排序沿線。 19 00:00:44,780 --> 00:00:46,230 詮釋時代 - 20 00:00:46,230 --> 00:00:48,850 好了,讓我們叫它為1 的第一人。 21 00:00:48,850 --> 00:00:51,480 詮釋2歲為第二人。 22 00:00:51,480 --> 00:00:53,980 詮釋第3歲為第三人。 23 00:00:53,980 --> 00:00:56,750 >> 但是且慢,這也許不是 下井的最佳路徑。 24 00:00:56,750 --> 00:01:00,620 因為我事先不知道的不要 寫作和編譯該程序如何 25 00:01:00,620 --> 00:01:02,330 很多用戶有將要。 26 00:01:02,330 --> 00:01:06,590 ,而且,如果有多達 100用戶,100聲明的變量 27 00:01:06,590 --> 00:01:10,350 那種奇怪的命名一樣,這並不 感覺像最優秀的設計。 28 00:01:10,350 --> 00:01:14,430 >> 嗯,幸好還存在另一種 變量的類型稱為陣列 29 00:01:14,430 --> 00:01:18,710 使我們能夠存儲任意數量的整數 在它的內部,即使我們不知道 30 00:01:18,710 --> 00:01:22,190 我寫程序的時候有多少 我們將這樣的整數需要。 31 00:01:22,190 --> 00:01:25,970 因此,讓我們原路返回和刪除這些 幾個整數,而是更換 32 00:01:25,970 --> 00:01:29,620 以稱為一個變量, 說,年齡,複數。 33 00:01:29,620 --> 00:01:33,420 但是,讓我們進一步明確在這條線 在方括號中的代碼,我們 34 00:01:33,420 --> 00:01:35,460 要Ñ整數。 35 00:01:35,460 --> 00:01:39,570 因此,我們將共同 參考這些整數的年齡。 36 00:01:39,570 --> 00:01:43,490 >> 現在,在短短的一瞬間,我就可以得到 在每一個在這個數組中的整數 37 00:01:43,490 --> 00:01:47,270 同樣用方括號的方式 符號,從0開始。 38 00:01:47,270 --> 00:01:51,720 因此,讓我們現在在一個循環的進行 提示用戶輸入他們的年齡。 39 00:01:51,720 --> 00:01:54,780 對於int我得到0。 40 00:01:54,780 --> 00:01:59,464 餘小於N,人的數目 在房間裡,我加再加。 41 00:01:59,464 --> 00:02:06,610 >> 現在這個循環中,讓我們說 人數字,百分比我的年齡的printf 42 00:02:06,610 --> 00:02:09,430 是一個佔位符,逗號。 43 00:02:09,430 --> 00:02:13,210 而現在,而不是從開始計數 0在程序本身,讓我們在 44 00:02:13,210 --> 00:02:17,180 至少我增量1,這樣一個正常的 使用該程序的人 45 00:02:17,180 --> 00:02:20,120 不必計算像 計算機科學家的威力。 46 00:02:20,120 --> 00:02:26,130 讓我們現在做的年齡,支架我,從而 指定第i個年齡在我們的 47 00:02:26,130 --> 00:02:31,480 不同年齡的數組是會得到 調用getInt的返回值。 48 00:02:31,480 --> 00:02:37,800 >> 現在,下面這個循環中,讓我們繼續 假設一些時間的推移。 49 00:02:37,800 --> 00:02:41,690 而且,我們現在進行的另一個循環 實際上每個人的年齡在房間裡 50 00:02:41,690 --> 00:02:42,800 通過一年。 51 00:02:42,800 --> 00:02:48,110 如此反复,對於int我得到0,我是少 N多,人們在數 52 00:02:48,110 --> 00:02:49,680 房間裡,我加再加。 53 00:02:49,680 --> 00:02:57,210 >> 現在這裡面循環,讓我們說 從現在開始數人printf的一年, 54 00:02:57,210 --> 00:03:00,990 %的我是一個佔位符,將 是,我百分之另一種是 55 00:03:00,990 --> 00:03:03,210 佔位符,歲。 56 00:03:03,210 --> 00:03:07,230 然後插入到這些 佔位符,讓我們先說我加 57 00:03:07,230 --> 00:03:11,220 1,讓我們再次開始計數 對於從1的用戶。 58 00:03:11,220 --> 00:03:18,630 然後讓我們插上那個人的年齡 因為年齡支架我加1,從而 59 00:03:18,630 --> 00:03:23,740 指定去得到第i個年齡在我們的 年齡的數組,把它加1,然後 60 00:03:23,740 --> 00:03:28,370 插入款項到我們的佔位符, 接近括號,分號。 61 00:03:28,370 --> 00:03:33,280 >> 現在,讓我們用make編譯這個程序 年齡,讓我們用點運行 62 00:03:33,280 --> 00:03:34,990 斜線年齡。 63 00:03:34,990 --> 00:03:38,770 並假設只有三個 房間裡的人,有人是18, 64 00:03:38,770 --> 00:03:40,700 有人是19,有人為20。 65 00:03:40,700 --> 00:03:45,350 那麼,在一年的每個,那些人 將是19,20,和21, 66 00:03:45,350 --> 00:03:46,600 分別。 67 00:03:46,600 --> 00:03:48,948