0

2 つの並列配列がある場合。1 つは short[] で、もう 1 つは 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

想定 - 生徒数 = いいえ

あなたの2つの配列は

String [] students;

short [] marks.

3 番目の配列を作成する

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 に答える
0

100 番目のインデックスがグレード 100 に対応し、99 番目のインデックスがグレード 99 に対応するように、配列を使用します。このようにして、誰かがグレードgを取得した場合、配列の g 番目の要素をインクリメントできます。

于 2013-04-15T16:01:29.243 に答える