2014-09-25 3 views
0
import java.util.*; 
public class Lab5_2{ 
    public static void main(String[]args){ 

     Scanner scan = new Scanner(System.in); 
     int num=0; 
     boolean choice=true; 
     int min= Math.min(100, num);// need to fix the min to the avg, won't print out 
     int max= Math.max(0, num); 
     int sum=+ num; 
     double avg= sum/(num+1); 

     while(choice==true){ 
      if(num>=0 && num<=100){ 
       System.out.println("Please enter a number between 0 and 100 "); 
       num= scan.nextInt(); 
       System.out.println("You entered: " + num);  
      }else if(num<0 || num>100){ 
       choice=false; 
       System.out.println("Thank you "); 
      } 
     } 
    } 
    /* 
     System.out.println("Min = " + min); 
     System.out.println("Max = " + max); 
     System.out.println("Sum = " + sum); 
     System.out.println("Avg = " + avg);*/ 
} 

이 방법이 더 쉽다는 것을 알고 있습니다. 그러나 나는 내 삶에 대해 계산할 코드를 얻는 방법을 찾지 못합니다. 최소, 최대, 합계 및 평균. 모든 숫자를 숫자로 입력 할 수 있고 배열을 사용하지 않고 계산할 수 있어야합니다 (클래스가 없기 때문에). 최소, 최대, 합계 및 평균을 계산하는 방법

하면 처리 할 당신의 범위 내에 있지 않은 번호를 싶지 않기 때문에 당신은 while 루프의 외부 Scanner.read을해야 사전에

+3

들여 쓰기를 수정하십시오. –

+1

일단 while 루프를 실행하면 새로운 최소/최대/평균을 계산하지 못할 것이라고 생각합니다. 하지만 제레미가 당신의 들여 쓰기를 고쳤다 고 말했습니다 :) – Quantico

답변

3

먼저 감사 :

while (choice) { 
    System.out.println("Please enter a number between 0 and 100 "); 
    num = scan.nextInt(); 
    if (num >= 0 && num <= 100) { 
     // accept number and update min, max, sum 
    } else { 
     choice = false; 
    } 
} 

이제, 우리는 후에 우리가있어 그 값을 계산하자 : 처음에, 우리의 합이 0이며, 각 수락 :

  • sum을 계산하는 것은 쉽다 에드 번호가 누적됩니다. 합계를 계산하려면 numsum = sum + num을 추가하면됩니다.

  • 최소값은 항상 이전 반복의 최소값보다 커야합니다. 다른 반복의 값을 알 필요가 없으므로 배열을 저장하는 데 배열 (또는 다른 컬렉션)이 필요하지 않습니다. num이 이전 최소값보다 작은 지 여부를 간단히 확인하고 최소값 (이 경우 if (num < min) min = num;)을 교체하면됩니다. 또한 축약 표기법이 있습니다. min = num < min ? num : min;

  • 최대 계산은 최소 계산 (역순)과 동일합니다. 나는 당신이 해결책을 찾아 낼 수있을 것이라고 확신한다.

  • 각 평균에서 평균을 업데이트 할 수 없습니다. 그러나 우리는 결국 그것을 계산할 수 있습니다. 평균은 무엇입니까? 총합을 총합의 수로 나눈 값입니다. 따라서 숫자를 읽은 횟수를 세어야합니다. 각 반복에서 증가하는 추가 변수를 저장하여이 작업을 수행 할 수 있습니다.

이 정보를 사용하면 코드를 작성할 수 있습니다. 루프에 들어가기 전에 변수를 올바르게 초기화하는 것이 중요합니다. 조심스럽게 그것에 대해 생각해보십시오. 또한 고려해야 할 사항이 있습니다. 사용자가 단일 번호를 입력하지 않으면 어떻게됩니까? 이 경우 귀하의 가치는 무엇입니까? 0으로 나누는 것이 정의되지 않았다는 것을 잊지 마십시오!

관련 문제