2014-10-07 3 views
1

사용자가 입력 한 점수에서 평균 점수를 계산하는 방법을 알 수없는 것 같습니다. 나는 또한 100 이하의 입력을 제외하고는 그만 둘 수 없다. 누군가 잘못한 것을 나에게 보여 줄 수 있는가? 감사.평균을 찾는 데 도움이 필요합니다

public static void main(String[] args) { 


    Scanner scan = new Scanner(System.in); 

    int sum = 0; 
    int inputNumber; 
    int numberExams; 
    float averageScore; 
    double max = 0; 
    double min = 101;  


    System.out.println("Enter the total number of exams you want a average"); 
    numberExams = scan.nextInt(); 

    System.out.println("Please enter " + numberExams + " numbers:"); 

    for(int i = 1; i<=numberExams ;i++){   
    inputNumber = scan.nextInt(); 
    sum = sum + inputNumber; 
    System.out.println(); 

    if(inputNumber > max){ 
    max = inputNumber; 
} 
    if(inputNumber < min){ 
    min = inputNumber; 
} 
    if(inputNumber > -1 && inputNumber < 101){ 
    sum = sum + inputNumber; 
} 
    else{ 
    System.out.println("You entered a number that wasn't in the range of 0 to 100"); 
} 
} 


    averageScore = sum/numberExams; 

System.out.println("The Max Exam Score is: " + max); 
System.out.println("The Minimum Exam Score is: " + min);  
System.out.println("The Average Exam Score is: " + averageScore); 
} 
} 
먼저 min 또는 max에 할당하기 전에 당신의 범위에 대한 확인을해야
+1

min''어떻게되는지 확인하고'max' 입력 한 잘못된 항목을 :

또한, 당신은 평균을 계산하는 doubleint의 변환해야합니다. (또한 나쁜 입력과 좋은 결과에서 항상 'numberExams'를 늘립니다.) – usr2564301

+1

합계에 입력을 두 번 추가하고 있습니다. – Tom

+0

유효한 입력 개수를 계산해야합니다. 아마 당신은'averageScore = (double) sum/numberExams;를 의도했을 것입니다. –

답변

1

.

이 작동 : 당신은 아직도 당신이 잘못된 입력을받을 경우, 당신은 점수의 번호를 잘못 계산됩니다 있다는 문제가

public static void main(String[] args) { 
    Scanner scan = new Scanner(System.in); 

    int sum = 0; 
    double averageScore; 
    double max = 0; 
    double min = 101; 

    System.out.println("Enter the total number of exams you want a average"); 
    final int numberExams = scan.nextInt(); 

    System.out.println("Please enter " + numberExams + " numbers:"); 

    for (int i = 0; i < numberExams; ++i) { 
    final int inputNumber = scan.nextInt(); 

    if (inputNumber >= 0 && inputNumber <= 100) { 
     System.out.println(); 

     if (inputNumber > max) { 
     max = inputNumber; 
     } 
     if (inputNumber < min) { 
     min = inputNumber; 
     } 
     sum += inputNumber; 
    } 
    else { 
     System.out.println("You entered a number that wasn't in the range of 0 to 100"); 
    } 
    } 

    averageScore = sum/numberExams; 

    System.out.println("The Max Exam Score is: " + max); 
    System.out.println("The Minimum Exam Score is: " + min); 
    System.out.println("The Average Exam Score is: " + averageScore); 
} 

참고. 당신은 그 두 가지 다른 방식을 다룰 수 있습니다. 하나는 else 블록 안에있는 i을 감소시키는 것입니다.

1

for-loop에서 sum = sum + inputNumber을 두 번하고 있습니다.

double average = ((double) sum)/numberExams; 
관련 문제