학원/실습
*9일차 실습
pringspring
2022. 2. 3. 19:23
@별찍기 / 배열
[문제 1]
정수를 하나 입력받아 그 수가 양수일때만 입력된 수를 행 수로 적용하여 다음과 같이 출력되게 하는 프로그램을 작성
ex) 정수 입력: 5
1
12
123
1234
12345
package kh.java.nested.loop;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Test1 test = new Test1();
test.test();
}
public void test() {
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int n = sc.nextInt();
if (n < 0) {
System.out.println("양수가 아닙니다.");
return;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j);
}
System.out.println();
}
}
}
[문제2]
정수를 하나 입력받아 그 수가 양수일때만 입력된 수를 행수로 적용하여 다음과 같이 출력되게 하는 프로그램 작성
ex) 정수 입력: 5
*****
****
***
**
*
package kh.java.nested.loop;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Test2 test = new Test2();
test.test();
}
public void test() {
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int n = sc.nextInt();
if (n < 0) {
System.out.println("양수가 아닙니다.");
return;
}
for (int i = n; i >= 1; i--) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
[문제 3]
정수를 하나 입력받아 그 수가 양수일때만 입력된 수를 줄 수로 적용하여 다음과 같이 출력되게 하는 프로그램 작성
ex)정수 입력: 5
*
**
***
****
*****
****
.
.
.
package kh.java.nested.loop;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Test3 test = new Test3();
test.test();
}
public void test() {
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int n = sc.nextInt();
if (n < 0) {
System.out.println("양수가 아닙니다.");
return;
}
for(int i = 0; i <(n*2);i++) {
if(i<n) {
for(int j = 0 ;j<=i;j++)
System.out.print("*");
System.out.println(" ");
}
else {
for(int j=n;j<=i;j++) {
System.out.print(" ");
}
for(int j=i ; j<(n*2)-1; j++) {
System.out.print("*");
}
System.out.println(" ");
}
}
}
}
@2차원배열
[문제 1]
1. 3행 5열 2차원 배열 선언 및 생성
2. 1~100사이의 임의의 정수를 모든 방에 기록
3. 열의 값이 5의 배수인 경우만 값(행,열) 출력
public void exercise1() {
int[][] arr = new int[3][5];
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
arr[i][j] = (int) (Math.random() * 100) + 1;
}
}
for (int i=0; i<3;i++) {
for (int j = 0; j < 5; j++) {
if (arr[i][j] % 5 == 0) {
System.out.printf("%d 행 %d열 값 = %d%n", i, j, arr[i][j]);
}
}
}
System.out.println();
}
[문제 2]
1. 3행 4열 2차원 배열 선언 및 생성
2. 0행 0열부터 2행 2열까지 1~100사이의 임의의 수 값 기록
3. 각 행렬 값 , 합계 출력
public void exercise2() {
int[][] arr =new int[3][4];
int sum[] = new int[3];
System.out.println(" \t0열\t1열\t2열\t3열");
for(int i =0;i<3;i++) {
System.out.print(i+"행\t");
for(int j=0;j<4;j++) {
arr[i][j] = (int)(Math.random() * 100);
sum[i] += arr[i][j];
System.out.printf("%d\t",arr[i][j]);
}
System.out.print("총합: ");
System.out.println(sum[i]);
}
}