0

如果我有 2 个并行阵列。一种是short[],另一种是String[]。short 有一系列标记。短 [95, 96, 95, 99, 100]。字符串有学生的名字 [Mark, Steve, Emma, Rachael, Justin] 他们已经被声明并且是对应的。我知道如何按字母顺序和标记排序。问题要求我打印出学生获得成绩的时间的“*”。用户没有输入任何输入。例如:这将是输出。

100 = * (As only 1 person got a 100)
99 = *
96 = *
95 = **

我必须在没有任何用户输入的情况下获得该输出。我有点想我知道该怎么做,但我很迷茫。我什至不知道如何开始。我所知道的是必须使用一个计数器,但这只有在用户输入标记时才有效。我不知道如何在没有任何输入的情况下做到这一点。

4

2 回答 2

0

使用一个数组,使得第 100 个索引对应于 100 级,第 99 个索引对应于 99 级,等等。这样,如果有人得到一个等级g,你可以增加数组的第 g 个元素。

于 2013-04-15T16:01:29.243 回答
0

假设 - 没有学生 = 没有

你的2个数组是

String [] students;

short [] marks.

创建第三个数组

int [] count = new int[101];


int i = 0;

for(i = 0; i < no; ++i)
    ++count[marks[i]];

count 数组将不包含每个标记出现的次数,即 count[50] 将不包含获得 50 的学生。

您可以将其打印为

for(int i = 0; i < no; ++i)
    System.out.println(i + " = " + count[i]);
于 2013-04-15T16:00:16.753 回答