クラスはMaxAndMinOfInt
フィールド
int型の配列(名前はnumbersとします)のみ
コンストラクタ
引数で与えられたScannerから整数を順次読み取る。最初に読み取った整数を配列サイズとみなして、int型の配列を生成し、numbersで参照する。その後、整数を読み取ってはnumbers[0],numbers[1],・・・へ順に代入していき、配列サイズ分だけ読み取れば終了。
メソッド
void showAll() numbers中の全要素を判りやすく表示する
int max() numbers中の最大値を返す
int min() numbers中の最小値を返す
クラスの機能を確認するためのmainメソッド
public static void main(String[] args){
Scanner kbScanner = new Scanner(System.in);
MaxAndMinOfInt array = new MaxAndMinOfInt(kbScanner);
array.showAll();
System.out.printf("最小値は%dです. \n", array.min());
System.out.printf("最大値は%dです. \n", array.max());
}
実行例
これは配列サイズ→5 2 4 6 10 1 ←これはキーボード入力
[2, 4, 6, 10, 1]
最小値は1です.
最大値は10です.
以下は自分で打ち込んでみたものです
import java.util.Scanner;
public class MaxAndMinOfInt {
int[] numbers;
public MaxAndMinOfInt(Scanner scanner) {
numbers = new int[0];
Scanner kbScanner = new Scanner(System.in);
System.out.println("");
int numbers = kbScanner.nextInt();
for (int i = 0;i < numbers; i++) {
System.out.print((i + 1));
}
}
public void showAll() {
for (int i = 0; i < numbers.length; i++) {
System.out.printf("[]", numbers[i]);
}
}
public int max() {
int max = 0;
max = numbers[0];
for(int i = 1; i < numbers.length; i++){
if(max < numbers[i])
max = numbers[i];
}
return max;
}
public int min() {
int min = 0;
min = numbers[0];
for(int i = 1; i < numbers.length; i++){
if(min > numbers[i])
min = numbers[i];
}
return min;
}
public static void main(String[] args) {
Scanner kbScanner = new Scanner(System.in);
MaxAndMinOfInt array = new MaxAndMinOfInt(kbScanner);
array.showAll();
System.out.printf("最小値は%dです.\n", array.min());
System.out.printf("最大値は%dです.\n", array.max());
}
}
これを実行しても実行例のような表示になりません。
どこを変更すればいいか教えてください。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
import java.util.Scanner;
public class MaxAndMinOfInt {
int[] numbers;
public MaxAndMinOfInt(Scanner scanner) {
/* 大きさ0で初期化するな。(削除) */
Scanner kbScanner = new Scanner(System.in);
/* メンバ変数と重複すると判りにくいので別名を付けた。*/
int len = kbScanner.nextInt();
/*最初の値がわかったのでここで漸く配列を初期化 */
numbers = new int[len];
for (int i = 0;i < len; i++) {
/* 処理内容が誤っている */
numbers[i] = kbScanner.nextInt();
}
}
public void showAll() {
/* 処理が誤っている。人によっては嫌うかも*/
System.out.print("[");
for (int i = 0; i < numbers.length - 1; i++) {
System.out.print(numbers[i]);
System.out.print(", ");
}
System.out.print(numbers[numbers.length - 1]);
System.out.print("]");
System.out.print("\n");
}
/* 処理そのものに問題は無し */
public int max() {
int max = 0;
max = numbers[0];
for(int i = 1; i < numbers.length; i++){
/* 1行で済むときでも中括弧を付けるほうが個人的に見やすい */
if(max < numbers[i]){
max = numbers[i];
}
}
return max;
}
/* 処理そのものに問題は無し */
public int min() {
int min = 0;
min = numbers[0];
for(int i = 1; i < numbers.length; i++){
/* 1行で済むときでも中括弧を付けるほうが個人的に見やすい */
if(min > numbers[i]){
min = numbers[i];
}
}
return min;
}
public static void main(String[] args) {
Scanner kbScanner = new Scanner(System.in);
MaxAndMinOfInt array = new MaxAndMinOfInt(kbScanner);
array.showAll();
System.out.printf("最小値は%dです.\n", array.min());
System.out.printf("最大値は%dです.\n", array.max());
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
java キーボード入力された値の...
-
Java 入力した整数値の合計を、...
-
数値⇒漢数字変換 java
-
Java、2の0乗~10乗の表示
-
繰り返しによる星印の出力
-
論理演算子”||”またはの入力方法
-
*を表示させるプログラムを
-
リトルエンディアン→ビッグエン...
-
キーボードから10人分の点数を...
-
Randomメソッドの確率設定
-
要素数が10の配列で、乱数0~9...
-
java 配列
-
java break文とラベル
-
画面出力の際の繰り返しと入力...
-
Ctrl+Zが入力されると終了する...
-
(急いでいます)Javaで3回間違...
-
乱数の生成について
-
7つ数字を表示したら改行すると...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
java キーボード入力された値の...
-
Java、2の0乗~10乗の表示
-
数値⇒漢数字変換 java
-
論理演算子”||”またはの入力方法
-
コマンドライン引数の例外処理...
-
JAVAのfor文で困っています。
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
Java 入力した整数値の合計を、...
-
7つ数字を表示したら改行すると...
-
テキストボックスに入力された...
-
countに実行した回数をいれたい...
-
総称型ArrayList<E>への参照...
-
Randomメソッドの確率設定
-
Ctrl+Zが入力されると終了する...
-
学校で課題を出されて困ってい...
-
Java キーボードから負の数が入...
-
キーボードから10人分の点数を...
-
階乗の式
-
Java 配列<選挙>
おすすめ情報