问:目标:
输入学生的记录。显示整个记录。显示最年轻和最年长的学生的姓名。
我在实现第三个目标时遇到问题:如果我输入3或5个条目,结果很好,但是一旦我输入5或10个条目,就会出现年龄最大的学生姓名,但是最小的名字却没有。
请尽快帮助。
答:浏览完您的代码后,我发现在“ checkage()”函数内部,您已将变量“最老”和“最年轻”初始化为“ age [0]”(即,您在第0个索引处的元素是什么)。在两个for循环中,您要检查条件
if(age [i]>最年长)和if(age [i] <最年轻),
如果您的年龄“最年轻”或“最年长” ,则这些条件的计算结果为false在第0个索引处(age [0])(因为(a <a)或(a> a)始终为false,即整数不能小于或大于其自身)。因此,“ e_name”和“ y_name”将永远不会在这种情况下初始化。在这种情况下,您将无法在其中打印值。
为了克服这个问题,您可以先将“ e_name”和“ y_name”初始化为name [0]。例如:
e_name = name [0];
y_name =名称[0];
或者,可以在if条件内检查“ <=“和”> =“,而不是“ <”和“”>”。