2017-03-26 21 views
-2

申し訳ありませんので、この配列にいくつかの追加関数を追加する必要があります。この配列には10個の乱数があります。それは、40未満の数を記憶し、それらを平均より小さい数と共に印刷することができる必要がある。 forループでif文を使ってこれをどうやって行うのですか? (アウトcomettedだものを無視します。ループの配列のjava if文

public static void main(String[] args) { 
     Random gen= new Random(); 
     int[] ages = new int[10]; 

     for(int i=0; i<ages.length; i++){ //adds stuff to arrays 


      ages[i] = gen.nextInt(100); //Determines the maximum used in random number generation 
      } 

     for(int x=0; x<10; x++){//prints the array with the below statement 

    System.out.println(ages[x]); 
     } 
    System.out.println("---------------"); 
    System.out.println(ages[9]); 
    System.out.println(ages[8]); 
    System.out.println(ages[7]); 
    System.out.println(ages[6]); 
    System.out.println(ages[5]); 
    System.out.println(ages[4]); 
    System.out.println(ages[3]); 
    System.out.println(ages[2]); 
    System.out.println(ages[1]); 
    System.out.println(ages[0]); 
    int value = (ages[0] + ages[1] + ages[2] + ages[3] + ages[4] + ages[5] + ages[6] + ages[7] + ages[8] + ages[9]); 
    System.out.println("The combined value of the integers is " + value + "."); 

    int average = (value/10); 
    System.out.println("The average value of the integers is " + average + "."); 
    } 
} 
+0

は "40未満" ...そして、なぜあなたは '' nextInt(100)しましたか? ? –

+0

nextInt(100)は生成された番号を取り出すためのものです。 – TPG

+0

しかし、40未満の数値を格納する必要があると言います。 –

答えて

0

これは何か? (申し訳ありませんが、コードのためにみんなが、私は良いことをする時間を持っていない):

public static void main(String[] args) { 
    Random gen= new Random(); 
    int[] ages = new int[10]; 
    List<Integer> agesLesserThan40 = new ArrayList(); 
    List<Integer> agesLesserThanAverage = new ArrayList(); 
    float value = 0; 

    for(int i=0; i<10; i++) { 
     ages[i] = gen.nextInt(100); 
     value += ages[i]; 
    } 

    for(int x=0; x<10; x++){ 
     if(ages[x] < value/10) agesLesserThanAverage.add(ages[x]); 
     if(ages[x] < 40) agesLesserThan40.add(ages[x]); 
    } 

    System.out.println("ages:"); 
    for(int z=0; z<10; z++){System.out.print(ages[z] + ", ");} 
    System.out.println(); 
    System.out.println("Lesser than 40: "); 
    for(int y=0; y<agesLesserThan40.size()-1; y++){System.out.print(agesLesserThan40.get(y) + ", ");} 
    System.out.println(); 
    System.out.println("Lesser than average: "); 
    for(int y=0; y<agesLesserThanAverage.size()-1; y++){System.out.print(agesLesserThanAverage.get(y) + ", ");} 
    System.out.println(); 

    System.out.println("The average value of the integers is " + value/10 + "."); 
    System.out.println("The combined value of the integers is " + value + "."); 
} 

}

0

私はif (value >= 100000)は何が40未満であると言います...ここ


あなたは上記と下にあなたの配列を分割することができるか考えられますか見当がつかない40.

final int AGES_TO_GENERATE = 10; 
final int AGE_LIMIT = 100; 
final int AGE_DIVIDER = 40; 

List<Integer> lesserAge = new ArrayList<>(); 
List<Integer> upperAge = new ArrayList<>(); 

Random gen = new Random(); 
double averageAge = 0.0; 
for(int i=0; i<AGES_TO_GENERATE; i++){ 
    int age = gen.nextInt(AGE_LIMIT); 

    averageAge += age; 

    if (age < AGE_DIVIDER) lesserAge.add(age); 
    else upperAge.add(age); 
} 
averageAge /= AGES_TO_GENERATE; 

System.out.println("Here are the values less than 40"); 
System.out.println(lesserAge); 

if (upperAge.isEmpty()) { 
    System.out.println("There are no values over 40"); 
} 

のJava 8を使用している場合、あなたは非常に単純

少ない平均よりも値を印刷することができます
lesserAge 
    .stream() 
    .filter(x -> x < averageAge) 
    .sorted() // Assuming you want to sort 
    .forEach(System.out::println); 

upperAge 
    .stream() 
    .filter(x -> x < averageAge) 
    .sorted() // Assuming you want to sort 
    .forEach(System.out::println); 
+0

しかし、それは平均以下の値を記録する方法もありますか? – TPG