Java
Java Day5 : 배열,난수(로또)
할수있다!긍정왕
2019. 6. 12. 10:09
<배열을 이용하여 정렬>
==Console==
<Select Sort>
==Console==
<성적순으로 나열하기>
//똑같은 것을 퍼가실수 있게 소스코드로 한것임(위에 보시는것 성적순)
package com.day5;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
//10명 이내의 이름과 점수를 입력받아 점수가 높은 사람에서 낮은 사람 순으로 출력
Scanner sc = new Scanner(System.in);
// Scanner의 객체를 생성함.//메모리를 할당함 등등...
int i,j,inwon,temp1;
String temp2;
int[] score;
String[] name;
do{
System.out.print("인원수[1~10]? ");//3
inwon = sc.nextInt();
}while(inwon<1 || inwon>10);
//객체 생성(메모리 할당)
score = new int[inwon];
name = new String[inwon];
//인원수 만큼 이름과 점수 입력
for(i=0;i<inwon;i++){
System.out.print((i+1)+"번째 이름?");
name[i] = sc.next();
System.out.print("점수?");
score[i] = sc.nextInt();
}
//정렬
for(i=0;i<inwon-1;i++){
for(j=i+1;j<inwon;j++){
if(score[i]<score[j]){
temp1 = score[i];
score[i] = score[j];
score[j] = temp1;
temp2 = name[i];
name[i] = name[j];
name[j] = temp2;
}
}
}
//출력
for(i=0;i<inwon;i++){
System.out.printf("%6s %4d\n",name[i],score[i]);
}
sc.close();
}
}
==Console==
<로또>
//소스코드
package com.day5;
import java.util.Random;
public class Test4 {
public static void main(String[] args) {
//1~45까지의 수 중 6개의 난수를 발생시켜 크기 순으로 출력
Random rd = new Random(); //copy의 개념
int[] num = new int[6];
int i,j,su,temp;
su = 0;
// 반복의 횟수를 알 수 없을 때 사용
while(su<6){
num[su] = rd.nextInt(45)+1; //nextInt(45) : 0에서 44번까지의 45개 숫자를 꺼냄
for(i=0;i<su;i++){
if(num[i]==num[su]){
su--;
break;
}
}
su++;
}
//정렬
for(i=0;i<num.length-1;i++){
for(j=i+1;j<num.length;j++){
if(num[i]>num[j]){
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
//출력
for(int n : num){
System.out.printf("%4d",n);
}
System.out.println();
}
}
==Console==난수를 발생시켜 로또번호가 나옴
<성적으로 석차를 구하기>
//소스코드
package com.day5;
import java.util.Scanner;
public class Test5 {
public static void main(String[] args) {
//10명 이내의 이름과 점수를 입력받아 석차(rank)를 구하시오.
//석차가 높은 사람에서 낮은 사람 순으로 출력
Scanner sc = new Scanner(System.in);
int i,j,inwon;
int[] score;
String[] name;
int[] rank;
do{
System.out.print("인원수[1~10]? ");//3
inwon = sc.nextInt();
}while(inwon<1 || inwon>10);
//객체 생성(메모리 할당)
score = new int[inwon];
name = new String[inwon];
rank = new int[inwon];
//인원수 만큼 이름과 점수 입력
for(i=0;i<inwon;i++){
rank[i]++;
}
for(i=0;i<inwon;i++){
System.out.print((i+1)+"번째 이름?");
name[i] = sc.next();
System.out.print("점수?");
score[i] = sc.nextInt();
}
//석차계산
for(i=0;i<inwon-1;i++){
for(j=i+1;j<inwon;j++){
if(score[i]>score[j]){
rank[j]++;
}else if(score[i]<score[j]){
rank[i]++;
}
}
}
//출력
for(i=0;i<inwon;i++){
System.out.printf("%6s %4d %4d\n",name[i],score[i],rank[i]);
}
sc.close();
}
}
==Console==
<앞의 방법과 다르게 1등 순서대로 나오게 하기>
package com.day5;
import java.util.Scanner;
public class Test6 {
public static void main(String[] args) {
//10명 이내의 이름과 점수를 입력받아 석차(rank)를 구하시오.
//석차가 높은 사람에서 낮은 사람 순으로 출력
Scanner sc = new Scanner(System.in);
int i,j,inwon,temp1;
String temp2;
int[] score;
String[] name;
int[] rank;
do{
System.out.print("인원수[1~10]? ");//3
inwon = sc.nextInt();
}while(inwon<1 || inwon>10);
//객체 생성(메모리 할당)
score = new int[inwon];
name = new String[inwon];
rank = new int[inwon];
for(i=0;i<inwon;i++){
rank[i] = 1;
}
//인원수 만큼 이름과 점수 입력
for(i=0;i<inwon;i++){
System.out.print("이름?");
name[i] = sc.next();
System.out.print("점수?");
score[i] = sc.nextInt();
}
//정렬
for(i=0;i<inwon-1;i++){
for(j=i+1;j<inwon;j++){
if(score[i]<score[j]){
temp1 = score[i];
score[i] = score[j];
score[j] = temp1;
temp2 = name[i];
name[i] = name[j];
name[j] = temp2;
}
}
}
for(i=0;i<inwon-1;i++){
for(j=i+1;j<inwon;j++){
if(score[i]>score[j]){
rank[j] += 1;
}
}
}
//출력
for(i=0;i<inwon;i++){
System.out.printf("%6s %4d %4d등\n",name[i],score[i],rank[i]);
}
sc.close();
}
}
==Console==
<입력된 값에서 가장 큰수와 작은 수 >
//소스
package com.day5;
import java.util.Scanner;
public class Test7 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i,max=0,min=0;
int num[] = new int[5];
System.out.println("5개의 정수를 입력하시오. ");
for(i=0;i<num.length;i++){
num[i] = sc.nextInt();
}
max = num[0];
min = num[0];
for(i=0;i<num.length;i++){
if(max<num[i]){
max = num[i];
}
if(min>num[i]){
min = num[i];
}
}
System.out.printf("가장 큰수 : %d, 가장 작은 수 : %d",max,min);
sc.close();
}
}
==Console==
==소스==
package com.day5;
import java.io.IOException;
import java.util.Random;
import java.util.Scanner;
public class Test9 {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
Random rd = new Random();
int num=0, nansu;
char ch;
String[] str = {"가위","바위","보"};
System.out.println("---------가위바위보 게임---------");
while(true){
nansu = rd.nextInt(3);
do{
System.out.println("1: 가위, 2: 바위, 3: 보");
System.out.println("너는 어떤거 낼래? ");
num = sc.nextInt();
}while(num<1||num>3);
num -= 1;
System.out.printf("컴퓨터 : %s, 사람 : %s\n"
,str[nansu],str[num]);
System.out.println("-------------------------------");
if(nansu==num){
System.out.println("컴퓨터와 비겼습니다.");
}else if((num+2)%3==nansu){
System.out.println("당신이 이겼습니다.");
}else{
System.out.println("컴퓨터가 이겼습니다..");
}
System.out.println("계속 하시겠습니까? ");
ch = (char)System.in.read();
if(ch != 'Y' && ch!= 'y'){
break;
}
System.out.println("----------------------------------------");
}
sc.close();
}
}
==Console==