문제) 3행 5열의 배열을 출력예처럼 초기화한 후 형식에 맞추어 출력하는 프로그램(사이의 공백은 3칸으로 하고 각 수는 2칸으로 오른쪽 맞추어 출력)
출력예)
package sample;
public class Sample
{
public static void main(String[] args)
{
int[][] a = new int[][]{{5, 8, 10, 6, 4},{11, 20, 1, 3, 2},{7, 9, 14, 22, 3}};
int i, j;
for( i=0; i<a.length; i++)
{
for( j=0; j<a[i].length; j++)
{
System.out.printf("%2d ", a[i][j]);
}
System.out.println();
}
}
}
문제) 3행3열의 배열 두개를 선언하고 입력을 받아 두 배열의 합을 구하여 출력하는 프로그램 ( 입력받는 배열은 a, b로 정의하고 출력은 hap으로 정의해서 출력
입출력예)
package sample;
import java.util.*;
public class Sample
{
public static void main(String[] args)
{
Scanner scn = new Scanner(System.in);
int[][] a = new int[3][3];
int[][] b = new int[3][3];
int i, j;
for( i=0; i<a.length; i++)
{
System.out.printf("첫 번째 배열 %d행 : ", i+1);
for( j=0; j<a.length; j++)
{
a[i][j] = scn.nextInt();
}
}
for( i=0; i<b.length; i++)
{
System.out.printf("두 번째 배열 %d행 : ", i+1);
for( j=0; j<b.length; j++)
{
b[i][j] = scn.nextInt();
}
}
int[][] hap = new int[3][3];
for( i=0; i<a.length; i++)
{
for( j=0; j<a.length; j++)
{
hap[i][j] = a[i][j] + b[i][j];
System.out.print(hap[i][j]+" ");
}
System.out.println();
}
}
}
문제) 학생 3명의 국어, 영어, 수학 점수를 입력받아 학생별 총점과 과목별 합계를 아래와 같이 출력하는 프로그램 (정수 찍을 때는 %4d로 하고 배열은 1개만 선언해서 사용)
입출력예)
package sample;
import java.util.*;
public class Sample
{
public static void main(String[] args)
{
Scanner scn = new Scanner(System.in);
int[][] a = new int[4][4];
int i, j;
for( i=0; i<a.length-1; i++)
{
System.out.printf("%d번째 학생의 점수 : ", i+1);
for( j=0; j<a[i].length-1; j++)
{
a[i][j] = scn.nextInt();
a[i][a[a.length-1].length-1] += a[i][j];
a[a.length-1][j] += a[i][j];
a[a.length-1][a[a.length-1].length-1] += a[i][j];
}
}
System.out.println("\t 국어\t 영어\t 수학\t 총점");
for( i=0; i<a.length; i++)
{
if(i<a.length-1)
{
System.out.printf("%d번\t", i+1);
}
else
{
System.out.print("합계\t");
}
for( j=0; j<a.length; j++)
{
System.out.printf("%4d\t", a[i][j]);
}
System.out.println();
}
}
}
문제) 파스칼삼각형을 출력하는 프로그램 작성. 파스칼삼각형은 첫번째 줄 첫번째 행은 1로 초기화한후 다음줄부터 바로 위 값과 바로위 왼쪽의 값을 더한 값이 적용됨. (6행6열 배열로 풀이)
출력예)
package sample;
public class Sample
{
public static void main(String[] args)
{
int[][] a = new int[6][6];
int i, j;
a[1][1] = 1;
for( i=2; i<a.length; i++)
{
for( j=1; j<=i; j++)
{
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
for( i=1; i<a.length; i++)
{
for( j=1; j<=i; j++)
{
System.out.print(a[i][j]);
}
System.out.println();
}
}
}
문제) 배열을 만들어 반복문을 이용하여 아래와 같이 저장한 후 출력하는 프로그램 (첫 번째 행은 전부 1로 초기화한후 내거 왼쪽 + 바로 위 값을 더해서 저장 - 배열의 크기 5행 5열)
출력예)
package sample;
public class Sample
{
public static void main(String[] args)
{
int[][] a = new int[5][5];
int i, j;
for( j=0; j<a[4].length; j++)
{
a[0][j] = 1;
System.out.printf("%2d ", a[0][j]);
}
System.out.println();
for( i=1; i<a.length; i++)
{
for( j=0; j<a[i].length; j++)
{
if( j==0)
{
a[i][j] = a[i-1][j];
}
else
{
a[i][j] = a[i-1][j] + a[i][j-1];
}
System.out.printf("%2d ", a[i][j]);
}
System.out.println();
}
}
}
문제) String 2차원 배열을 이용한 단어맞추기 게임 - 영어단어의 뜻을 입력하여 정답이면 정답입니다. 오답이면 틀렸습니다. 정답은 ~입니다 라고 출력하는 프로그램
입출력예)
package sample;
import java.util.*;
public class Sample
{
public static void main(String[] args)
{
Scanner scn = new Scanner(System.in);
String[][] a = new String[][]{{"Chair", "의자"},{"Computer", "컴퓨터"},{"Integer", "정수"}};
int i;
for( i=0; i<a.length; i++)
{
System.out.printf("Q%d. %s의 뜻은? ", i+1, a[i][0]);
if(a[i][1].equals(scn.next()))
{
System.out.println("정답입니다.\n");
}
else
{
System.out.printf("틀렸습니다.\n정답은 %s입니다.\n\n", a[i][1]);
}
}
}
}
'자바 JAVA' 카테고리의 다른 글
원, 삼각형 좌표 찍기 예제 - 자바 기초 (0) | 2021.06.07 |
---|---|
자바 공부 잊지말아야 할 내용 정리 1편 (0) | 2021.06.06 |
간단한 번호추첨 프로그램 작성 예제 - 자바 기초 (0) | 2021.05.24 |
배열복사 문제풀이 - 자바 기초 (0) | 2021.05.24 |
배열을 이용한 예제풀이 2 - 자바 기초 (0) | 2021.05.23 |