解答を見ながら写して答えましたが、誤解して考えていたので、その思考プロセスも含めて覚え書きに

import java.util.*;
public class Main {
public static void main(String[] args) {
// 自分の得意な言語で
// Let's チャレンジ!!
/*
忘年会の参加者の人数 N と、数 M , K が与えられ
、各参加者が書いた紙が与えられるので、それぞれの参加者の得点を計算して出力してください。
*/
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int m = sc.nextInt();
int k = sc.nextInt();
//System.out.println(k);
for(int i=0; i<num; i++){
int[] hoges = new int[m];
for(int j=0; j<m; j++){
hoges[j] = sc.nextInt();
}
//System.out.println(Arrays.toString(hoges));//このhogesはforのなかしか生きてない
int answer = 0;//reset
for(int j=0; j<m; j++){
if(hoges[j]==k){
answer++;
}
}
System.out.println(answer);//このanswerはforのなかしか生きてない
}
}
}
配列hogesの中身
[2, 2]
[1, 2]
[1, 1]
よく分からないのは、iに相当する一段目の配列は
int[] hoges = new int[m];
で宣言していると思うんですが、
2段目の配列が
hoges[j] = sc.nextInt();
だけでiに相当する記述がないんですよね? 1段目のiはどこにいった。
でも中身を見るとちゃんと2階建てになっている。

それとも、hogesはm段の配列ですよと宣言しておいて、
hoges[j] = sc.nextInt();
は、jが0からmになり、その一段ごとに中身が連続して追加になっているのかな? この一行で?

ああ、これ分かった気がします。多次元配列じゃないんですね。
単純に配列hoges(1段の)を、3つ生成している。
[2, 2]//最初に生成され出力されたhoges
[1, 2]//次に生成され出力されたhoges
[1, 1]//3つめに生成され出力されたhoges
hogesがforの中で宣言され、「forのなかでしか生きていない」なら、これで合っているはずです。System.out.printlnの位置からいってもそのはずだ。
つまりこの解答例は多次元配列じゃなく、単純に1段の配列ということになりますね。なるほど・・・
https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_for_boss
paiza Cランクレベルアップメニュー
0