1번(가장 작은 숫자와 가장 큰 숫자를 출력)
//1번
int[] score = {79, 88, 91, 33, 100, 55, 95};
int max = score[0];
int min = score[0];
for(int i=0; i<score.length-1; i++)
{
if(min>score[i])
{
min = score[i];
}
}
System.out.println(min);
for(int i=0; i<score.length-1; i++)
{
if(max<score[i])
{
max = score[i];
}
}
System.out.println(max);
}
두 숫자를 비교해서 작은 숫자를 대입한다.
MAX의 경우 반대이다.
2. 길이가 10인 배열 iArr을 생성하고
0~9의 숫자로 차례대로 초기화하여 출력 한후 (포문 열번 돌림)
random()을 이용해서 배열의 임의의 위치에 있는 값과
배열의 첫 번째 요소인 iArr[0] 의 값을 교환하는 일을
100번 반복하다가 끝낸후 iArr배열을 출력하는 프로그램
출력예) 0123456789
5827164930 --이부분은 random 인덱스와 [0] 번째 값
--교환으로 실행시마다 다른 결과 출력
2번
int[] iArr = new int[10];
int i, b, tmp;
for(i=0; i<iArr.length; i++)
{
iArr[i] = i;
System.out.print(iArr[i]);
}
for(i=0; i<=100; i++)
{
//랜덤 발생
b = (int)(Math.random()*10);
//변수 세개로 자리 바꾸기
tmp = iArr[0];
iArr[0] = iArr[b];
iArr[b] = tmp;
}
System.out.println();
for(i=0; i<iArr.length; i++)
{
System.out.print(iArr[i]);
}
인덱스가 0~9까지 있으니까
랜덤을 이용해서 1~9까지 랜덤으로 뽑아낸다.
여기선 이 공식이 적용
T = A
A = B
B = T
3번
// 3번
*
int[] iArr = {95, 75, 85, 100, 50};
int i, tmp;
for(i=0; i<iArr.length-1; i++ )
{
for(int j=i+1; j<iArr.length; j++)
{ //교환할 인덱스 값만 확보
if(iArr[i] > iArr[j])
{
tmp = iArr[i];
iArr[i] = iArr[j];
iArr[j] = tmp;
}
}
//여기서 교환 -> [i]에 값과 [교환할 인덱스 위치 값]과 교환
}
for(i=0; i<iArr.length; i++)
{
System.out.printf("%d ", iArr[i]);
}
select sort의 원리이며, 메소드는 따로 있다!
4번
//로또
int[] lotto = new int[45];
int i, ran;
for(i=0; i<lotto.length; i++)
{
lotto[i] = i+1;
}
for(i=0; i<6; i++)
{
//인덱스 교환을 해야하니까 +1을 넣지 않음 0부터 시작이니까
ran = (int)(Math.random()*45);
tmp = lotto[i];
lotto[i] = lotto[ran];
lotto[ran] = tmp;
}
for(i=0; i<6; i++)
{
System.out.printf("ball[%d] = %d\n", i, lotto[i]);
}
5. 연도와 월을 입력받아 해당 월의 날 수를 출력하다가 월이 0 이면 종료하는 프로그램 (단, 월이 잘못 입력되면 “잘못 입력하였습니다.” 출력)
입.출력예) 년 = 2000
#윤년계산 : 1. 400년 마다
2. 4년 마다 오면서 100년은 제외
Scanner sc = new Scanner(System.in);
int[] days = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int year, month;
while(true)
{
System.out.print("년 = ");
year = sc.nextInt();
System.out.print("월 = ");
month = sc.nextInt();
if(year == 0)
{
break;
}
if(0 < month && month < 13)
{
if(year%400 == 0 || year%4 == 0 && year%100 != 0)
{
days[2] = 29;
}
else
{
days[2] = 28;
//바꿔주지 않으면 다음에 실행할 때도 윤년이 아닌 경우 29가 찍히기 때문에 꼭 넣어주어야한다.
}
System.out.printf("입력하신 달의 날 수는 %d일입니다.\n\n", days[month]);
}
else
{
System.out.println("잘못 입력하였습니다.");
}
}
입력한 달의 수를 뽑아내는 코드이지만,
윤년의 경우 29일로 바꾸어준다!
if(year%400 == 0 || year%4 == 0 && year%100 != 0)
year%400 == 0 || (400년으로 나누어지거나)
year%4 == 0 && year%100 != 0 (4로 딱 나누어지지만 100으로 나누어지면 안 됨)
else
{
days[2] = 28;
}
바꿔주지 않으면 다음에 실행할 때도 윤년이 아닌 경우 29가 찍히기 때문에 꼭 넣어주어야한다.
'개발일지 > Java + Spring' 카테고리의 다른 글
클래스 파일 확인 - 같은 파일에 있는 클래스가 나눠져서 저장? (0) | 2021.10.21 |
---|---|
211021 java - 다차원 배열과 객체 (0) | 2021.10.21 |
211020 Java - Array 배열 복사 하는 방법과 메소드 (0) | 2021.10.20 |
211019 Java - Array (0) | 2021.10.19 |
211019 Java - while (0) | 2021.10.19 |