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, 分别。