2. 다음 2차원 배열 n을 출력하는 프로그램을 작성하라.
int n[][] = {{1}, {1, 2, 3}, {1}, {1, 2, 3, 4}, {1, 2}};
1
1 2 3
1
1 2 3 4
1 2
[풀이]
public class Exercise3_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n[][] = {
{1},
{1,2,3},
{1},
{1,2,3,4},
{1,2}
};
for(int i = 0; i < n.length; i++) { //2차원 배열은 중첩 반복문을 써야합니다. i는 행입니다. i행에서
for(int j = 0; j < n[i].length; j++) //j 열이 설정된 만큼 표시됩니다.
System.out.print(n[i][j] + " "); // n행렬의 한 행렬을 출력합니다.
System.out.println(); //그다음 행렬로 넘어가기전 한줄을 띄워줍니다.
}
}
}
3. Scanner를 이용하여 정수를 입력받고 다음과 같이 *를 출력하는 프로그램을 작성하라. 다음은 5를 입력받았을 경우이다.
정수를 입력하시오 >> 5
*****
****
***
**
*
[풀이]
import java.util.Scanner;
public class Exercise3_3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
System.out.print("정수를 입력하시오>>");
int n = scanner.nextInt();
for(int i = n; i > 0; i--) {
for(int j = i; j > 0; j--) {
//i++, j++ 이 아니라 i--, j--를 쓴 이유는 위에서 아래로 갈수록 별이 줄어들기 때문입니다. 5개 ->4개->3개를 표현하는 것입니다.
System.out.print("*");}
System.out.println();
}
}
}
4. Scanner를 이용하여 소문자 알파벳을 하나 입력받고 다음과 같이 출력하는 프로그램을 작성하라. 다음은 e를 입력받았을 경우이다.
소문자 알파벳 하나를 입력하시오 >> e
abcde
abcd
abc
ab
a
[Hint] Scanner는 문자를 입력받는 기능이 없다. 그러므로 문자열을 입력받아야 한다. 다음 코드를 참고하라.
String s = scanner.next(); // 문자열 읽기
char c = s.charAt(0); // 문자열의 첫 번째 문자
[풀이]
package Exercise3_4;
public class Exercise3_4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String s;
char c;
System.out.print("소문자 알파벳 하나를 입력하시오>>");
s = sc.next(); //s 에 문자열 읽기
c = s.charAt(0); //s의 첫번쨰 문자를 c에 입력
for(int i = 0; i<=c-'a'; i++) {
for(char j = 'a'; j<= c-i; j++) {
System.out.print(j);
}
System.out.println();
}
sc.close();
5. 양의 정수를 10개 입력받아 배열에 저장하고, 배열에 저장하고, 배열에 있는 정수 중에서 3의 배수만 출력하는 프로그램을 작성하라.
양의 정수 10개를 입력하시오 >> 1 5 99 22 345 125 2346 55 32 85
3의 배수는 99 345 2346
[풀이]
import java.util.Scanner
package Exercise3_5;
public class Exercise3_5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int num;
System.out.print("양의 정수 10개를 입력하시오>>");
for(int i=0; i <10; i++)
num = sc.nextInt();
if(num%3 == 0)
System.out.print(num);
sc.close();
}}
6. 배열과 반복문을 이용하여 프로그램을 작성해보자. 키보드에서 정수로 된 돈의 액수를 입력받아 오만 원권, 만 원권, 천 원권, 500원짜리 동전, 100원짜리 동전, 50원짜리 동전, 10원짜리 동전, 1원짜리 동전이 각 몇 개로 변환되는지 예시와 같이 출력하라. 이때 반드시 다음 배열을 이용하고 반복문으로 작성하라.
int[] unit = {50000, 10000, 1000, 500, 100, 50, 10, 1}; // 환산할 돈의 종류
금액을 입력하시오 >> 65123
50000 원 짜리 : 1개
10000 원 짜리 : 1개
1000 원 짜리 : 5개
500 원 짜리 : 0개
100 원 짜리 : 1개
50 원 짜리 : 0개
10 원 짜리 : 2개
1 원 짜리 : 3개
[풀이]
import java.util.Scanner;
public class Exercise3_6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
System.out.print("금액을 입력하세요.>>");
int money = scanner.nextInt();
int[] unit = {50000, 10000, 1000, 100, 10, 1};
for(int i=0; i<unit.length; i++) {
System.out.print(unit[i] + "원 짜리 :" + money/unit[i]);
System.out.println;
money = money - (money / unit[i])*unit[i];} //출력이후 반복 전에 money에서 앞자리를 제거해줍니다.
}
}
7. 정수를 10개 저장하는 배열을 만들고 1에서 10까지 범위의 정수를 랜덤하게 생성하여 배열에 저장하라. 그리고 배열에 든 숫자들과 평균을 출력하라.
랜덤한 정수들 : 3 6 3 6 1 3 8 9 6 9
평균은 5.4
[Hint] 1에서 10까지 범위의 정수를 랜덤하게 생성할 때는 다음 코드를 이용하라.
int i = (int)(Math.random()*10+1);
[풀이]
public class Example3_7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n[];
n =new int[10];
int sum = 0;
int count = 0; //평균값을 구하기 위해 sum과 count 변수를 지정해줍니다.
System.out.print("랜덤한 정수들 :");
for(int i = 0; i< n.length;i++) {
n[i] = (int)(Math.random()*10+1);
sum+=n[i];
count+=1;
System.out.print(n[i]+" ");}
System.out.print("평균은" + sum/count);
}
}
8. 정수를 몇 개 저장할지 키보드로부터 개수를 입력받아(100보다 작은 개수) 정수 배열을 생성하고, 이곳에 1에서 100까지 범위의 정수를 랜덤하게 삽입하라. 배열에는 같은 수가 없도록 하고 배열을 출력하라.
정수 몇개? >> 24
26 87 78 44 93 99 37 40 2 63
95 82 51 53 4 94 5 14 33 39
32 58 70 6
[풀이]
import java.util.Scanner;
public class Exercise3_8_copy {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int arr[];
int n;
System.out.print("정수 몇개?>>");
n = sc.nextInt();
arr = new int[n];
for(int i=0; i<arr.length; i++) {
int tmp = (int)(Math.random()*100+1); // 중복 검증을 위해 변수 tmp에 임시로 배열을 저장합니다.
int chk = 0; //그리고 다음에 올 if조건문을 위해 chk변수를 지정합니다.
for(int j=0; j<arr.length; j++) {
if(tmp == arr[j]) {
chk=1;
break; // 만약 중복된 수가 있다면
}
}
if(chk == 1) { // 다시 앞으로 돌려보냅니다.
i--;
continue; //중복이 없다면 아래로 보내 arr[i]를 출력합니다.
}
arr[i] = tmp;
}
for(int i=0; i<arr.length; i++) {
if(i%10 == 0 && i != 0) System.out.println(); //한 행에 10열씩 출력하기 위함입니다.
System.out.print(arr[i] + " ");
}
sc.close();
9. 4 x 4의 2차원 배열을 만들고 이곳에 1에서 10까지 범위의 정수를 랜덤하게 생성하여 정수 16개를 배열에 저장하고, 2차원 배열을 화면에 출력하라.
8 6 1 1
7 3 6 9
4 5 3 7
9 6 3 1
[풀이]
public class Exercise3_9 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n[][];
n = new int[4][4];
for (int i = 0; i< n.length;i++) {
for (int j = 0; j < n[i].length; j++) {
n[i][j] = (int)(Math.random()*10+1);
System.out.print(n[i][j] + " ");}
system.out.println()
}
}
}
10. 4 x 4의 2차원 배열을 만들고 이곳에 1에서 10까지 범위의 정수를 10개만 랜덤하게 생성하여 임의의 위치에 삽입하라. 동일한 정수가 있어도 상관없다. 나머지 6개의 숫자는 모두 0이다. 만들어진 2차원 배열을 화면에 출력하라.
7 1 9 0
0 0 0 1
4 4 4 0
7 4 5 0
[풀이]
public class Exercise3_10 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[][] = new int[4][4];
int x, y;
for(int result = 0; result < 10; result++) {
x = (int)(Math.random()*4);
y = (int)(Math.random()*4);
if(arr[y][x]==0) {
arr[y][x] = (int)(Math.random()*10+1);}
}
}
for(int i=0; i<arr.length; i++) {
for(int j=0; j<arr[i].length; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
<Java> 동전으로 거스름돈 지불하기 (0) | 2021.07.01 |
---|---|
<Java> 중복되지 않는 숫자로 배열 만들기(arraycopy) (0) | 2021.06.30 |
<java> 배열의 합과 평균 (0) | 2021.06.30 |
명품 Java progamming 3장 실습문제 11 ~16 해답 (0) | 2021.06.29 |
<JAVA>2차원 배열로 4학년 평점 구하기 (0) | 2021.06.25 |