私は、コマンドラインでいくつかの数字の平均、モーダル値と中央値を計算するプログラムを作る必要があります。数字は範囲内になければなりません[1,10]なぜそれが止まるのか理解できません。どこが間違っていますか?あなたがそのtry
/catch
を削除する場合は、エラーに関する詳細情報を入手しますコマンドラインから平均を計算するには?宿題excercize
import java.lang.Integer;
import java.util.Arrays;
class Stat{
public static void main(String[] args){
int i,median,modalValue = 0;
float average, sum = 0;
int repetition[] = new int[args.length];
Integer allNumbers[] = new Integer[args.length];
//check numbers range
try{
//reading args from command line
for(i = 0; i < args.length; i++){
//if not in range --> exception
if(Integer.parseInt(args[i]) < 1 || Integer.parseInt(args[i]) > 10)
throw new Exception("Exception: insert number out of range. Restart the programm.");
//put numbers in an array
allNumbers[i] = new Integer(args[i]);
}
//sorting the array
Arrays.sort(allNumbers);
//calculate average
for(i = 0; i < allNumbers length; i++){
sum += allNumbers[i];
}
average = sum/(i + 1) ;
System.out.println("Average: " + average);
//calcolate modal value (most frequent number)
for(i = 0; i < repetition.length; i++){ //counting numbers occurrences
repetition[allNumbers[i]]++;
}
for(i = 1; i < repetition.length; i++){ //checking which number occurrences the most
if(repetition[i] >= repetition[i-1])
modalValue = repetition[i];
}
System.out.println("Modal Value: " + modalValue);
//calculating median value
if((allNumbers.length) % 2 == 0){ //even
median = allNumbers.length/2;,
}else{ //odd
median = (allNumbers.length/2) + 1;
}
System.out.println("Median: " + allNumbers[median]);
}catch(Exception e) { //out of range
System.out.println(e.getMessage());
}
}
}
実際の出力対要求出力を提供できますか? –
'for(i = 0; i
nakano531
平均forループにドットを忘れてしまったようです:_for(i = 0; i
Gulllie