2014-02-23 4 views
0

여기 거래가 있습니다.프로그래밍 연습 온라인에서 찾았습니다

아래의 프로그램은 두 가지 방법으로 배열 q에 저장된 숫자의 산술 평균을 찾는 것입니다. 한 번 ArrayList d에 숫자를 저장하여 모든 필요한 변환이 자동으로 수행됩니다. 한 번 손으로 모든 변환을 수행하는 ArrayList e에 저장합니다. 프로그램을 완료하십시오. 내가 위를 변경할 수 아니에요

double[] q = { 0.5, 2.4, 7.4, 2.8, -6.2 }; 
    ArrayList<Double> d = new ArrayList<Double>(); 
    ArrayList<Double> e = new ArrayList<Double>(); 

    for (double x : q) 
    { 
     d.add(x); 
     e.add (new Double (x)); 
    } 

    double dTotal = 0.0, 
      eTotal = 0.0; 

//my code goes here 

: 여기

는 내가 지금까지 가지고있는 것입니다. 내가 바꿀 수있는 것은 기본적으로 그 아래에있는 모든 것입니다. 나는 그것이 단순 할지도 모르고다고 생각하고있다. 그리고 그것은 아주 어려울지도 모른다. 데이터 유형을 ArrayList로 변환해야한다고 생각하지만 확실하지 않습니다.

는 편집 :

for (double c : d) 
{ 
    double a += c; 
} 

for (double f : e) 
{ 
    double b += f; 
} 

return (a/d.length); 
return (b/e.length); 

나는 "오류라는 오류를 받고 있어요 :

좋아, 나는 몇 가지 코드에 추가 ';' 예상했다. "

+0

"유형 변환"여부에 관계없이 요청 된 작업을 해결하는 것을 작성하십시오. 여기에 게시하고 코드가 형식 변환을 수행하는지 여부를 묻고 형식 변환을 수행하는 방법과이를 수정하는 방법에 대해 물어보십시오. –

+0

이제 평균을 찾아야합니다. 더블리스트에 더블 박스를 수동으로 넣을 수 있다는 것을 보여주는 것 이외에는 2 개의리스트가있는 것을 보지 못합니다. – xp500

+0

@ xp500 그것은 * 운동의 요점입니다. 평균을 계산하는 것은 실제 작업을 수행하기위한 것입니다. –

답변

0

ArrayList의 경우 length 일반 변수의 멤버 변수와 달리 멤버 변수 length이 없습니다. 반환 할 행에서 length 대신 size() 인스턴스 메서드를 사용해야합니다.

또 다른 문제점은 시도하는 방식대로 두 개의 return 문으로 2 개의 값을 반환 할 수 없다는 것입니다. 두 번째 것은 도달 할 수 없기 때문에 컴파일 시간 오류가 발생합니다.

마지막으로과 f을 for 루프 내에있는 변수에만 합산합니다. 대신 dTotaleTotal의 내용을 업데이트해야합니다.

나는 또한이 운동의 의도는 e을 사용할 때 어떤 종류의 자동 (un-) 권투도 사용해서는 안된다고 생각합니다.