javaの配列でn番目に大きな数を表示したいです。
nは任意の値です。
import java.util.Scanner;
public class test {
public static void main(String[] args) {
int a[] = {14,21,1,3,2,5,7,6,13,20} ;
int num1 = 0;
System.out.println("表示したい値は何番目?") ;
Scanner scan = new Scanner(System.in) ;
String x = scan.next() ;
num1 = Integer.parseInt(x) ;
for(int i=0; i<9; i++) {
if(a[i] < a[i+1]) {
int work;
work = a[i];
a[i] = a[i+1];
a[i+1] = work;
}
}
if(num1<1 && num1>10){
System.out.println("1から10の値で入力してください") ;
}else {
System.out.println(x+"番目に大きな数は「"+a[num1]+"」です。") ;
}
}
}
※インデックスがうまく表示されていなかったらすみません
こちらのコードだと、
・配列内の並び替え(降順)
・System.out.println("1から10の値で入力してください") ;
上記二つがうまくいっていないようで、
どのように修正したらよいかご教示いただきたいです。
何卒よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
import java.util.Scanner;
import java.util.Arrays;
import java.util.Collections;
public class test {
public static void main(String[] args) {
Integer[] a = {13, 21, 1, 3, 2, 5, 7, 6, 13, 20};
System.out.println("表示したい値は何番目?");
Scanner scan = new Scanner(System.in);
int x = Integer.parseInt(scan.next());
Arrays.sort(a, Collections.reverseOrder());
System.out.println(x + "番目に大きな数は 「" + a[x - 1] + "」です。");
}
}
No.5
- 回答日時:
>for(int i=0; i<9; i++) {
>if(a[i] < a[i+1]) {
>int work;
>work = a[i];
>a[i] = a[i+1];
>a[i+1] = work;
>}
>}
バブルソートのつもりなんだろうか?
教科書を確認しよう。バブルソートのループは二重だよ。
それと、アルゴリズムの演習なら敢えてバブルソ―卜でも良いけど
もっと速いアルゴリズムが沢山有るので実用では全く使われない
ことは知っておいた方がいい。
No.3
- 回答日時:
あと、そもそもソートで
> System.out.println("1から10の値で入力してください") ;
何でそんなのが必要なんだろ?
1から10の値を入力させよう、ってのは何のため?
もし、長さに制限付けたいのなら、配列の長さを取得して、それ以上や以下だった場合弾けばいいだけ、だし。
そういう「目的」は仕様としてキチンと書かないとダメですよ。
No.1
- 回答日時:
そんなめんどくさいfor文で回さなくてもソートして
array[n-1]を出力すれば良いだけじゃないの?
Javaはよく知らないけどsort関数くらいありますよね
sort関数を自作したいといのなら話は別ですけど
Cで良ければ自作のsort教えますよ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
Java、2の0乗~10乗の表示
-
java キーボード入力された値の...
-
数値⇒漢数字変換 java
-
Ctrl+Zが入力されると終了する...
-
7つ数字を表示したら改行すると...
-
countに実行した回数をいれたい...
-
繰り返しによる星印の出力
-
3つの値の中間値を求める
-
総称型ArrayList<E>への参照...
-
階乗の式
-
コマンドライン引数の例外処理...
-
Java キーボードから負の数が入...
-
九九の表
-
JAVAのfor文で困っています。
-
java プログラム for 文 while ...
-
【java】標準入力の受け取り方
-
javaで2重forループを使い 123 ...
-
点数をだす時に、maxとminがお...
-
要素数が10の配列で、乱数0~9...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
java キーボード入力された値の...
-
Java、2の0乗~10乗の表示
-
数値⇒漢数字変換 java
-
論理演算子”||”またはの入力方法
-
コマンドライン引数の例外処理...
-
JAVAのfor文で困っています。
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
Java 入力した整数値の合計を、...
-
7つ数字を表示したら改行すると...
-
テキストボックスに入力された...
-
countに実行した回数をいれたい...
-
総称型ArrayList<E>への参照...
-
Randomメソッドの確率設定
-
Ctrl+Zが入力されると終了する...
-
学校で課題を出されて困ってい...
-
Java キーボードから負の数が入...
-
階乗の式
-
キーボードから10人分の点数を...
-
Java 配列<選挙>
おすすめ情報