배열(Array)예제

윤재열·2022년 1월 7일
0

Java

목록 보기
8/71
post-custom-banner

1. String형 name배열에 저장된 인물들의 신장을 입력받고 합계와 평균을 구하는 Code를 작성하라.(이름과 신장은 마음대로해도된다.)

package Array;
import java.util.Scanner;

public class Ex1 {
    public static void main(String[] args) {
        String[]name={"james","tomas","adward","crystal","leepi"};
        int[] height =new int[name.length];

        Scanner sc = new Scanner(System.in);

        int total =0;//total값 초기화.
        for(int i=0; i<name.length; i++){
            System.out.println(name[i]+"신장을 입력하세요");
            height[i]=sc.nextInt(); //저장된 사람만 순서대로 신장 출력
            total += height[i];  //total 변수에 출력된 신장 저장
        }
        for(int i=0; i< name.length;i++){
            System.out.println(name[i] +"의 키는" +height[i]+"입니다.");//순서대로 입력받은 정보 출력
        }
        System.out.println("신장의 합: " + total);
        System.out.println("신장의 평균: " +total/ name.length);

    }
}

2. 양의 정수 10개를 입력받아 배열에 저장하고, 배열에 있는 정수 중에서 3의 배수만 출력해보자.

package Array;
import  java.util.Scanner;

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

        System.out.print("양의 정수 10개 입력:");
        int[] number=new int[10];

        for(int i=0; i<number.length; i++){	//number[i]의 값이 number.length만큼 출력
            number[i]=sc.nextInt();	
        }
        System.out.print("3의 배수: ");
        for(int i=0; i< number.length;i++){
            if(number[i]%3==0){
                System.out.print(number[i] + ",");
            }
        }
    }
}

3. 과목 이름을 입력받아 해당 과목 점수를 출력해주는 프로그램을 작성해보자. (무한반복을 하다가 "그만"을 입력받으면, 프로그램이 종료된다.)

package Array;
import java.util.Scanner;

public class Ex3 {
    public static void main(String[] args) {
        String[] subject = {"Java", "Python", "C++", "Jsp", "html"};
        int[] score = {100, 88, 76, 62, 40};
        Scanner sc =new Scanner(System.in);

        while (true) {
            System.out.print("과목명을 입력하세요:");
            String name = sc.next();

            for(int i=0; i<subject.length; i++) {
                if (subject[i].equals(name)) {
                    System.out.println(subject[i] + "의 점수: " + score[i]);
                }
            }

            if (name.equals("그만")) {
                break;
            }
        }
    }
}

4. arr 배열 중에서 인덱스가 1인 곳의 값을 출력해보자.

package Array;

public class Ex4 {
    public static void main(String[] args) {
        int[] arr = { 10, 20, 30, 50, 3, 60, -3 };

        System.out.println(arr[1]); //20; 무조건 배열은 0부터 시작한다.
    }
    }

5. arr 배열 중에서 값이 60인 곳의 인덱스를 출력해보자.

package Array;

public class Ex5 {
    public static void main(String[] args) {
        int[] arr = { 10, 20, 30, 50, 3, 60, -3 };

        for(int i=0; i< arr.length; i++){
            if(arr[i]==60){
                System.out.println("정수 60은 "+i+"번째에 있습니다.");//정수 60은 5번째에 있습니다.


            }
        }
    }
}

6. arr 배열 안의 모든 값을 더하고, 총합과 평균을 출력해보자.

package Array;
//arr 배열 안의 모든 값을 더하고, 총합과 평균을 출력해보자.
public class Ex6 {
    public static void main(String[] args) {
        int total =0;
        double average =0;

        int[] arr = {10, 20, 30, 50, 3, 60, -3};

        for(int i=0; i< arr.length; i++){
            total+=arr[i];
        }
        average+=(double)total/ arr.length;
        System.out.println("arr배열의 합은: "+total+ "이며 평균은: "+average+"입니다."); 
        //arr배열의 합은: 170이며 평균은: 24.29입니다.
    }
}

7. arr 배열의 인덱스가 3인 곳은 출력하지 말고, 나머지만 출력해보자.

package Array;

public class Ex7 {
    public static void main(String[] args) {
        //arr 배열의 인덱스가 3인 곳은 출력하지 말고, 나머지만 출력해보자.
        int[] arr = { 10, 20, 30, 50, 3, 60, -3 };

        for(int i=0; i<arr.length; i++){
            if(arr[i]==arr[3])
                continue;
            System.out.println("arr["+ i +"]"+"="+arr[i]);
            }
        }
    }

8. arr 배열의 요소에서 최대값과 최소값을 구해보자.

package Array;

public class Ex8 {
public static void main(String[] args) {
    int[] arr = { 10, 20, 30, 50, 3, 60, -3 };

    int max=arr[0];
    int min =arr[0];

    for(int i=0; i<arr.length; i++){
        if(arr[0]<arr[i])	//arr[0]기준으로 큰값이 있으면 max로 입력 반복
            max=arr[i];
        if(arr[0]>arr[i])	//arr[0]기준으로 작값이 있으면 min로 입력 반복
            min=arr[i];
    }
    System.out.println("최대값은: "+max + "최소값은: "+min);
}
}

9. char 배열을 생성하여, 알파벳 A~Z까지 대입 후, 출력해보자. 알파벳은 26개.

package Array;

public class Ex9 {
    public static void main(String[] args) {
        char[]arr=new char[26];

        for(int i=0; i<arr.length; i++){
            arr[i]=(char)(65+i);//'A'는 65기때문에 65대입
            System.out.print(arr[i]+",");
        }
    }
}

10. 9번을 역순으로 출력해보자. Z~A

package Array;

public class Ex9 {
    public static void main(String[] args) {
        char[]arr=new char[26];

        for(int i=0; i< arr.length; i++){
            arr[i]=(char)(90-i);//'A'는 65기때문에 65대입
            System.out.print(arr[i]+",");
        }
    }
}

또는

package Array;

public class Ex9 {
    public static void main(String[] args) throws ArrayIndexOutOfBoundsException{
        char[]arr=new char[26];

        for(int i= arr.length-1; i>=0; i--){
            arr[i]=(char)(65+i);//'A'는 65기때문에 65대입
            System.out.print(arr[i]+",");
        }
    }
}

이 코드에 대해서 고민을 해보았는데 왜 26번쨰부터 0까지인데 출력조차 안되는 거지?
이생각을 해보았는데 그렇게 하나하나 다시 살펴본 결과 arr.length의 값은 26인데
무조건 배열은 0부터 시작이니 우리는 초기화식을 i=25라고 하고 조건식은 0이 들어가야하므로 >=를 붙여줬습니다.

11.

profile
블로그 이전합니다! https://jyyoun1022.tistory.com/
post-custom-banner

0개의 댓글