고라파더억
85
2018-12-13 23:30:55
6
1336

자바 평균 구하기 기초 질문ㅠ


초보 질문입니다.


import java.util.Scanner;


class HeightAve   

{

public static void main(String[] args) 

{

String[] iArrName = {"영희", "철수", "길동", "영수", "말자"};

int[] iArr = new int[5];

int totalHeight = 0;

int maxH = 0;

int maxHIndex = 0;

int minH = 0;

int minHIndex = 0;


Scanner sc = new Scanner(System.in);

for (int i=0; i< iArr.length; i++){

System.out.print(iArrName[i] + "키를 입력하세요. : ");

iArr[i] = sc.nextInt();

totalHeight = totalHeight + iArr[i];

}


System.out.println("학생들의 평균 신장은 " + (totalHeight/iArrName.length) + "입니다. ");


for (int i=0; i < iArr.length;i++){

if(iArr[i]>maxH){

maxH=iArr[i];

maxHIndex = i;

}

}

System.out.println("가장 큰 학생은 " + iArrName[maxHIndex] + "입니다. ");


minH = maxH;

for(int i=0; i < iArr.length; i++){

if(iArr[i]<minH){

minH=iArr[i];

minHIndex=i;

}

}

System.out.println("가장 작은 학생은 " + iArrName[minHIndex] + "입니다. ");



}

}

이 소스에서 가장 큰 학생이나 작은학생 키가 두명이상 겹치면 한사람 이름만 떠서.. 어떻게 손봐야할지 모르겠네요...ㅠㅠㅠㅠ 
0
  • 답변 6

  • azrof95
    22
    2018-12-13 23:41:44 작성 2018-12-13 23:42:52 수정됨

    가장 크거나 작은 학생의 키를 저장한 후에 for문으로 iArr배열에서 같은 키를 가지고 있는 사람의 이름을 출력하면 되지 않을까요?

  • 동글동글이
    3k
    2018-12-14 09:33:56 작성 2018-12-14 09:36:39 수정됨

    for문 밖에

    사람의 이름을 담는 String 변수를 하나 선언해서

    담은 다음에

    마지막 System.out.println에서 출력하도록 하면 되지 않을까요 ?

          String students = "";

    for (int i=0; i < iArr.length;i++){

    if(iArr[i]>maxH){

    maxH=iArr[i];

                                    students += iArrName[i];

    }

    }

    System.out.println("가장 큰 학생은 " + students  + "입니다. ");


  • 고라파더억
    85
    2018-12-14 15:22:57

    첫분말씀대로 하니까 해결했는데!! 큰키가 한명일때는 똑같이 이름이 중복해서 나오네요 저는 바보에요..

    두번째분 말씀은 담기는게 엉뚱하게 담겨요,,,,ㅠㅠㅠ

  • azrof95
    22
    2018-12-14 16:15:18
  • 동글동글이
    3k
    2018-12-14 16:15:41

    고라파더억 


    String students = "";


    for (int i=0; i < iArr.length;i++){

    if(iArr[i]>maxH){

    maxH=iArr[i];

    maxHIndex = i;

    }


    }


    for(int j=0; j<iArr.length; j++)

    {

    if(iArr[maxHIndex] == iArr[j])

    {

    students += iArrName[j];

    }

    }


    System.out.println("가장 큰 학생은 " + students + "입니다. ");

  • 고라파더억
    85
    2018-12-15 16:39:21

    감사합니다 ㅠㅠ 제가 잘못이해했었어요 이제 해결했네요ㅠㅠ 감사합니다!! 

  • 로그인을 하시면 답변을 등록할 수 있습니다.