プロが教えるわが家の防犯対策術!

javaです。

途中まで出来ているのですが、中央値を出力するプログラムを書いてます。続きを助けてください!

import java.util.Scanner;
class Main {
public static void main(String[] args) {
final int KOSU = 5;

int[] data = new int[KOSU];
int hozon;

Scanner sc = new Scanner(System.in);

for(int i=0;i < KOSU;i++){
System.out.print(i + "番目のデータ>>");
data[i] = sc.nextInt();
}

if(KOSU%2 == 0){
System.out.print(data[KOSU/2-1]);
}


}
}

A 回答 (4件)

ソ―卜を簡単にやるなら


Array#sort
で真ん中のを印字すれば終わりです。
    • good
    • 0

中央値ですから、平均値と違い、並べ替えをしないといけません。


その後、個数が奇数なら(個数+1)/2個目を選択します。
個数が偶数なら(個数)/2個目と、(個数)/2+1個目を足して2で割った値を求めます。
並べ替えには各種あります。勉強になりますから自家製で。

for(int i=1;i<=KOSU-1;i++){//i=比較元1(2番目)~KOSU-1(最後)まで
  for(int j=i;j>0 && data[j]<data[j-1];j--){//j=比較元,比較先i~1(2番目)まで
    int taihi = data[j] ; //1手前より小さい場合,
     data[j] = data[j-1] ; //大きい方を一つづつ上げる
     data[j-1] = taihi ;//小さい方を一つづつ下げる
  }
}
何度作ってもよく間違える二重ループです。データが多い時はクイックソートが高速です。
並べ終わったら中央値を求めてください。
    • good
    • 0

並び変える処理


Arrays.sort(int[])

参考)
https://docs.oracle.com/javase/jp/16/docs/api/ja …

データの大きさが偶数の場合は、中央順位2個の値の算術平均をとる
小数点以下まで計算するため、値を int 型から float 型に変換すること
    • good
    • 0

その「続き」とやらでは, 具体的にはどのような操作をするの?

    • good
    • 0
この回答へのお礼

説明不足でした。
5個の値を入力するプログラムは出来ているので
あと降べきか昇べきのプログラムを書いて中央値を求める操作をしたいです。

お礼日時:2021/10/01 07:20

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