重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

問題 標準入力により与えられた乱数の種rを用いて,長さ100のint型配列(要素は0~99までの乱数)rarrayを宣言し,同様に0~99までのランダムな値が格納されているint型変数xを定義してください.
いま,上記の配列rarrayの要素の中にxと同じ値があるかどうかを調べるプログラムを作成したい.
これを作成するとともに,何回目の探索で終了したのかを表示するプログラムを作成してください.
なお,同じ値が見つからなかった場合には「見つかりませんでした」と出力すること.
また,配列rarray, xについてもそれぞれ出力すること
1行目に整数rが入力されます.

答え xに格納されている値:x
と表示し,改行の上、長さ100の配列を出力する(区切りは半角スペース).
その上で,改行し,
同じ値が見つかった場合:「見つかりました!」「xx回目の探索で終了しました」
同じ値が見つからなかった場合:「見つかりませんでした」
とそれぞれ出力すること.

という課題がまったくわかりません。教えてください。

A 回答 (2件)

何だか良く分からん問題。



> 「xx回目の探索で終了しました」

「xx回目の探索」もクソも、この題意だと対象を走査するのは1回で済まないか?
結果、毎回「1回目の探索で終了しました」と印字すれば済むと思う。
意図がマジで良く分からん。

// ここから

import java.util.Random;
import java.util.Scanner;
import java.util.Arrays;
import java.util.List;
import java.util.stream.*;

public class Main {
 public static void main(String[] args) {
  int[] rarray = new int[100];
  Scanner scan = new Scanner(System.in);
  int r = scan.nextInt();
  Random random = new Random(r);
  int x = random.nextInt(100);
  Integer[] result = Arrays.stream(rarray).map(item -> random.nextInt(100)).boxed().toArray(Integer[]::new);
  List<Integer> rlist = Arrays.asList(result);
  System.out.println("xに格納されてる値 : " + x);
  rlist.forEach(item -> System.out.printf("%d ", item));
  System.out.println();
  System.out.println(rlist.stream().anyMatch(n -> n == x) ? "見つかりました! 1回目の探索で終了しました" : "見つかりませんでした");
 }
}
    • good
    • 0

丸投げだねえ。



全く解らないなら
きっぱりすっきり諦めましょう。

粘るのなら助けるんだけどね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!