-1

私はこの質問を受け、何度か試してみましたが、何も頭に浮かびません:(

これが問題です: 10 人の体重を入力するプログラムを設計して書きます。20kg ~ 100kg の重量のみを受け入れる必要があります。プログラムは、これらの人々の平均、最大、最小の体重を計算して出力する必要があります。

これは私が試したコードです。誰でもこれを完了するか、単純化されたコードを思いつくことができますか? これは正しいですか、私はこれを行う方法を意味しますか? 助けてください

import java.util.Scanner;

class WeightOfPeople{
public static void main(String args []){

    Scanner sc = new Scanner(System.in);
    System.out.print("Enter a weight between 20kg - 100kg :");
    int weight1 = sc.nextInt();


    if(20 < weight1 && weight1 < 100){
            System.out.print("Enter a weight between 20kg - 100kg :");
            int weight2 = sc.nextInt();             
    }else{
        System.out.println("Enter a correct weight");
    }           
}
4

3 に答える 3

1

これを試して:

Scanner sc = new Scanner(System.in);
int count = 0;
int total = 0;
int min = 101;
int max = 19;
while(count < 3) {
    System.out.print("Enter a weight between 20kg - 100kg :");
    int nextWeight = sc.nextInt();
    if(20 <= nextWeight && nextWeight <= 100){
        total += nextWeight;
        if(nextWeight < min) {
            min = nextWeight;
        }
        if(nextWeight > min) {
            max = nextWeight;
        }
        count++;
    }
    else{
        System.out.println("Enter a correct weight");
    }
}
System.out.println("Average = " + ((double)total/count));
System.out.println("Min = " + min);
System.out.println("Max = " + max);
于 2012-10-14T13:04:31.870 に答える
0

ユーザーが10 個の異なる値を入力できるようにします。したがって、ある種のループが必要になります。

例えば

for (int i = 0 ; i < 10 ; i++) {
    System.out.print("Enter a weight: ");
    // record users input
}

私がすることは、ユーザーが入力するすべてのデータを格納するために整数の配列を維持することです。データを収集した後、この配列をループして、最小、最大、および平均を決定できます。このようなもの:

int min = weights[0];
int max = weights[0];
double avg = 0;

for (int weight : weights) {
    if (weight < min)
        min = weight;
    if (weight > max)
        max = weight;
    avg += weight;
}

avg /= weights.length;

全体として、次のようになります。

Scanner in = new Scanner(System.in);
int[] weights = new int[10];
for (int i = 0 ; i < 10 ; i++) {
    System.out.print("Enter a weight between 20 and 100: ");
    weights[i] = in.nextInt();
}
in.close();

int min = weights[0];
int max = weights[0];
double avg = 0;

for (int weight : weights) {
    if (weight < min)
        min = weight;
    if (weight > max)
        max = weight;
    avg += weight;
}

avg /= weights.length;

System.out.println("Min: " + min);
System.out.println("Max: " + max);
System.out.println("Average: " + avg);
于 2012-10-14T12:59:40.517 に答える
0
public static void main(String args []){
  Scanner sc = new Scanner(System.in);
  int i = 0;
  int sum = 0;
  int min = Integer.MAX_VALUE;
  int max = Integer.MIN_VALUE; 
  do{
    System.out.print("Enter a weight between 20kg - 100kg :");
    int weight = sc.nextInt();
    if(20 <= weight && weight <= 100){
      sum += weight;
      if(weight<min){
        min = weight;
      }
      if(weight>max){
        max = weight;
      }
      i++;
    }
    else {
      System.out.println("Enter a correct weight");
    }
  } while(i<=10)
  System.out.println("AVG "+ (sum/10)+" Min "+ min +" Max "+max);
}
于 2012-10-14T13:15:01.400 に答える