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