2012-03-04 2 views
0

나는 학생의 평균 점수를 표시하려하지만, 잘못된 숫자를 표시합니다. 이것은 내가 시도한 것입니다. 어떤 도움이라도 대단히 감사하겠습니다. 이것을 변경평균 (arraylist와 함께 일하는 것) java

import java.util.ArrayList; 

class Course 
{ 

    private ArrayList<Student> people = new ArrayList<Student>(); 

// return the average mark in the course 

    public double average() 
    { 
     double average = 0.0; 
     int i = 0; 

     for (i = 1; i < people.size(); i++) 
     { 
      int tmark = people.get(i).getMark() ; 
      { 
       average = tmark/i; 
      }  
     } 
     return average; 
    } 

} 
+0

일부 코드가 누락되었거나 전혀 이해가되지 않습니다. 왜 avarage 할당 주위에 블록? 여기에있는 코드는 기본적으로 다음과 같이 쓰여 있습니다 :'평균 = 마지막 학생의 수/학생의 수 표시 ' – nfechner

+1

숫자 순서의 평균을 "손으로"즉 펜, 종이 및 뇌로 계산하는 방법을 알고 있습니까?단계별로 설명하여 시작할 수 있습니다. 코드는 전혀 이해가되지 않습니다. 문제는 Java로 목록을 처리하는 방법에 대한 이해가 부족함을 훨씬 뛰어 넘습니다. –

답변

3

확인, 당신은 평균 계산되지 않은 것은 .. 당신은 모든 값을 합산 한 후 크기에 의해 분할해야 :

public double average() 
{ 
    double average = 0.0; 
    for (int i = 0; i < people.size(); i++) { 
     average += people.get(i).getMark() ; 
    } 
    return average/people.size(); 
} 
0

시도 : 모든

public double average() 
    { 
     double average = 0.0; 


     for (int i = 0; i < people.size(); i++) 
     { 
      int tmark = people.get(i).getMark() ; 
      { 
       average += tmark; 
      }  
     } 
     average /= people.size(); 

     return average; 
    } 

} 
4

우선, get() 0 기, 1 계 아니다.

두 번째로 i이 아닌 people.size()으로 전체를 나눌 필요가 있습니다. 그렇지 않으면 첫 번째 학생이 100 번째 학생보다 훨씬 중요한 역할을하게됩니다.

업데이트 : 현재 코드는 마지막 학생 만 고려합니다. 그렇습니까? 다른 사람이 언급 한 바와 같이

0

는 자바 ArrayList의 인덱스는 대신 여기에 for each loop을 사용할 수 있습니다, 그러나 0

시작합니다.

for (i = 1; i < people.size(); i++) 

for (Student s : people) 

와 총 점수를 합산하고, @alf에 의해 제안 후 people.size()으로 분할 : 교체합니다.

0

시도 :

double total = 0d; 
for(Student student : people) { 
    total += student.getMark(); 
} 
double average = total/(double)people.size(); 
2

당신에 당신의 코드를 통해 작업해야 종이. 당신은 매우 특이한 것을하고 있습니다. 약간의 논문을 가져 와서 학생 (또는 마크)의 예제 배열을 적어 놓은 다음 루프에서 한 번에 하나씩 반복하십시오. 그리고이 질문에 답하십시오

  • 루프 시작 부분의 각 변수 값은 무엇입니까?
  • 각 루프의 끝에있는 각 변수의 값은 무엇입니까?
  • 펜과 종이로 어떻게 평균을 계산합니까?
  • 위의 사항을 어떻게 for 루프로 변환 할 수 있습니까? 모든 작업을 for 루프에서 수행해야합니까?

마지막으로 한 점. ArrayList 또는 배열의 첫 번째 요소는 인덱스 0에 있고 마지막 요소는 인덱스 (크기 -1)에 있다는 점에 유의해야합니다.

예 :

index: 0 1 2 
array: ['a', 'b', 'c'] 
size or length: 3 
관련 문제