수업시간 JAVA/문제

배열 로또 10진수 등등

SEOKIHOUSE 2023. 4. 8. 19:25

1)대각선으로 10출력


2)랜덤으로 어디서 무엇을 했다 출력


3)

배열0~3은 숫자1씩 증가하고 마지막행은 0~3행 더한값 


4)배열 정순->역순->정순 숫자증가하기


5)지뢰찾기 auto (숫자 9 찾기)

package org.tutorials.practice1;

import java.util.Random;
import java.util.Scanner;

public class ziraefindauto {
	public static int getrandom(int[][] hide) {
		Random rd = new Random();

		for (int i = 0; i < 3; i++) {
			int raNum0 = rd.nextInt(5);
			int raNum1 = rd.nextInt(5);
			hide[raNum0][raNum1] = 9;
		}
		return 0;

	}

	public static void main(String[] args) {
		// 지뢰찾기 auto
		Scanner sc = new Scanner(System.in);
		int[][] hide = new int[5][5];
		int[][] real = new int[5][5];

		int howmanytimetry = 0;
		getrandom(hide);

		while (true) {
			System.out.println("숫자 9를 찾으세요");
			System.out.print("먼저 열을 선택하세요");

			int a = sc.nextInt(); // 열
			System.out.print("행을 선택하세요");
			int b = sc.nextInt(); // 행
			int count = 1;
			if (hide[a][b] == 9) {
				real[a][b] = 9;
				System.out.println("정답이다!!!!!!!!!!" + howmanytimetry + " 시도끝에 맞추셨습니다");
			} else {
				real[a][b] = count;
				howmanytimetry++;
			}

			// 출력부분
			for (int i = 0; i < hide.length; i++) {
				for (int j = 0; j < real.length; j++) {
					System.out.print(real[i][j] + "   ");
				}
				System.out.println();
			}
		}

	}

}

 

6)10진수 ->2진수로 바꾸기

package org.tutorials.practice1;

public class twojinsoo3 {

	public static void main(String[] args) {
		int [] a = new int [4];
		int mok = 11;
		int na =0;
		int idx =a.length-1;
		
		while(mok> 0) {
			na = mok %2;
			a[idx] =na;
			idx --;
			mok =mok/2;
		}
		for(int i =0; i<a.length; i++) {
			System.out.print(a[i]);	
		}
		

	}

}

7)학생 총합점 구하기

package org.tutorials.practice1;

import java.util.Scanner;

public class practice1 {
	public static void repeat(String some) {
		System.out.println(some + "를 입력하세요");
	}

	public static int getTotal(int cnt, String[] names, int[] nums, int[] score1, int[] score2, int[] score3) {
		for (int i = 0; i < cnt; i++) {
			int[] sum = new int[cnt];
			sum[i] = score1[i] + score2[i] + score3[i];
			int[] div = new int[cnt];
			div[i] = sum[i] / 3;
			System.out.println(nums[i] + "번 " + names[i] + " 님의 국어점수는 " + score1[i] + "영어점수는 " + score2[i] + "수학점수는 "
					+ score3[i] + "총합점은" + sum[i] + "평균은" + div[i]);
		}
		return 0;
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("총 몇명의 학생입니까? ");
		int cnt = sc.nextInt();
		int[] nums = new int[cnt];
		String[] names = new String[cnt];
		int[] korscore = new int[cnt];
		int[] engscore = new int[cnt];
		int[] mathscore = new int[cnt];

		for (int i = 0; i < cnt; i++) {
			repeat("번호");
			nums[i] = sc.nextInt();
			repeat("이름");
			names[i] = sc.nextLine();
			names[i] = sc.nextLine();
			repeat("국어점수");
			korscore[i] = sc.nextInt();
			repeat("영어점수");
			engscore[i] = sc.nextInt();
			repeat("수학점수");
			mathscore[i] = sc.nextInt();

		}

		getTotal(cnt, names, nums, korscore, engscore, mathscore);
		
	}

}

8)로또 중복없이 출력 + 낮은수부터 정렬

package org.tutorials.practice1;

import java.util.Random;

public class lottonumber {
	public static void print(int[] x) {
		for (int i = 0; i < x.length; i++) {
			System.out.print(x[i] + " ");
		}
		System.out.println();
	}

	public static boolean checking(int[] lotto, int raNum0) {
		boolean result = true;
		for (int i = 0; i < lotto.length; i++) {
			if (lotto[i] == raNum0)
				result = false;
		}
		return result;
	}
	
	public static void sort(int[]a) {
		int tmp = 0;
		for(int i =0; i<a.length; i++) { //a.length -1하는이유 마지막 굳이 실행안해도 되니깐 줄여주는것
			for(int j =i+1; j<a.length; j++) { 
				if(a[i]>a[j]) { 
					tmp=a[i];
					a[i]=a[j];
					a[j]=tmp;
				}
			}
		}
	}

	public static void main(String[] args) {
		Random rd = new Random();
		int[] lotto = new int[6];
//		for (int i = 0; i < lotto.length; i++) {
//			int raNum0 = rd.nextInt(100) + 1;
//			lotto[i] = raNum0;
//			for (int j = 0; j < i; j++) {
//				if (lotto[i] == lotto[j]) {
//					System.out.println("중복수 발견!!");
//					i--;
//					break;
//				}
//			}
//			System.out.println(lotto[i]);
//		}
		for (int i = 0; i < lotto.length; i++) {
			int raNum0 = rd.nextInt(100) + 1;
			boolean tf = checking(lotto, raNum0);
			if (tf) {
				lotto[i] = raNum0;
			} else {
				i--;
				System.out.println("중복수 발견!!");
			}
		}
		print(lotto); //배열출력
		sort(lotto); //배열정렬
		System.out.println("낮은 수 부터 정렬");
		print(lotto); //배열출력
		

	}

}