2013년 8월 8일 목요일

08.09 배열 실습 및 연습문제

//[문제1]배열의 선언과 초기화 맞나?
int[] arr1[]; //OK 2차원배열: 배열기호는 떨어져있어도 무관.
int[] arr2 = {1,2,3};//OK 1차원 배열 초기화
int[] arr3 = new int[5];//OK

int[] arr4 = new int[5]{1,2,3,4,5};//Error
int arr5[5];//Error 길이지정은 new 선언 이후에

int arr6[] = new int[3][];//Error 전항:1차원 != 후항:2차원 => type mismatch


//문제2 배열을 사용하는 code넣기
int[] arr = new int[]{1,2,3};
//배열 arr의 길이 출력
System.out.println("배열 arr의 길이 : "+arr.length);

//for문을 사용하여 arr모든 원소 값을 출력
// for (int k = 0; k < arr.length; k++) {
// System.out.println(arr[k]);
// }
for (int j : arr) {
System.out.println(j);

}

//[실습1]
//반복문이용, 배열에 저장된 성적을 모두 합하고 평균과 총점을 출력하시오.
//성적 : 95,84,87,92,100,90,78,94
//==================
// 총점=720
// 평균=90 / f평균=90.0

// int jumsu[] = new int[]{95,84,87,92,100,90,78,94}; //표기법1

// int jumsu[] = {95,84,87,92,100,90,78,94}; //표기법2 

// int[] jumsu = {95,84,87,92,100,90,78,94}; //표기법3 

int jumsu[] = new int[8]; //표기법4
int idx = 0;
jumsu[idx++] = 95;
jumsu[idx++] = 84;
jumsu[idx++] = 87;
jumsu[idx++] = 92;
jumsu[idx++] = 100;
jumsu[idx++] = 90;
jumsu[idx++] = 78;
jumsu[idx++] = 94;

float favg = 0f;
int sum ,avg;
sum = avg = 0;

for (int i = 0; i < jumsu.length; i++) {
sum += jumsu[i];
}
avg = sum/jumsu.length;
                favg = sum/(jumsu.length*1f);
System.out.println("총점="+sum);
System.out.println("평균="+avg+" / f평균="+favg);


//[실습2]
//연도를 입력받고 지간 출력하는 프로그램.
// 10간: 갑 을 병 정 무 기 경 신 임 계(10년)
// 12지: 자 축 인 묘 진 사 오 미 신 유 술 해 (12년주기)
// 참고 : 서기 4년은 갑자년.1905 을사년.2013 계사년

import java.util.Scanner;
public class Day6 {
public static void main(String[] args) {

String gan[] = {"갑","을","병","정","무","기","경","신","임","계"};
String ji[] =  {"자","축","인","묘","진","사","오","미","신","유","술","해"};
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();

//간= (year-4)%10
//지= (year-4)%12

String sel_gan,sel_ji;
sel_gan = sel_ji = "";

sel_gan = gan[(year-4)%10];
sel_ji = ji[(year-4)%12];

System.out.println("입력한 년도 "+year+"의 간지는? "+sel_gan+sel_ji);
}
}
//==================
public static void main(String args[]){
//실습3
// //2*3 2차원 배열에 담긴 두학생의총점과 평균 구하기
// 학생 국어 영어 수학
// A    90,85,92
// B    87,92,84
// 학생 국어 영어 수학 총점 평균 순으로 출력하기

int[][] stu = new int[][]{
{90,85,92},
{87,92,84}
};
char c = 'A';
int stu_len = stu.length; //학생수
int sum[]      = new int[stu_len];
float avg[]    = new float[stu_len];
int stu_nm[]   = new int[stu_len];
String title[] = {"학생","국어","영어","수학","총점","평균"};

//float avg[] = 0f;

for (int i = 0; i < stu_len; i++) {
for (int j = 0; j < stu[i].length; j++) {
sum[i] += stu[i][j];//학생별 전과목 합계
}
//평균구하기
//10f 곱하고 나누면 87.7, 100f곱하고 나누면 87.67
avg[i]= Math.round(sum[i]*10f/stu[0].length)/10f;
avg[i]= Math.round(sum[i]*100f/stu[0].length)/100f;
// avg[i]=(float)sum[i]/stu[0].length;//87.666664
}

for (int i = 0; i < sum.length; i++) {
stu_nm[i] = c++;//학생이름 A B
}

//화면출력
// System.out.println("학생|국어|영어|수학|총점|평균");
for (int i = 0; i < title.length; i++) {
System.out.print(title[i]);
if (i<title.length-1) {
System.out.print("\t");
}
}
System.out.println();
for (int i = 0; i < stu_len; i++) {
System.out.print((char)(stu_nm[i])+"\t");
for (int j = 0; j < stu[i].length; j++) {
System.out.print(stu[i][j]+"\t");
}
System.out.print(sum[i]+"\t");//학생별 전과목 합계
System.out.println(avg[i]);  //평균
}
//------------------------------------------------------------
//주말숙제 = 실습4
/* 가위바위보 게임
 * 결과와 함께 게임전적 - 승 무 패 를 누적하여 보여주는 프로그램
 * 컴퓨터의 선택은 p117 에 있는  Math.ramdom 사용하여 랜덤 발생시킨다.

 * -----------------------------
 * 가위바위보를 선택하세요(1:가위,2:바위,3:보)
 * 1
 * 당신은 가위,컴퓨터는 바위를 선택했습니다.
 * 당신이 졌습니다(0승 0무 1패)
 * 
 * 가위바위보를 선택하세요(1:가위,2:바위,3:보) 
 * 2
 * 당신은 바위,컴퓨터는 가위를 선택했습니다.
 * 당신이 이겼습니다(1승 0무 1패)
 * 
 * 가위바위보를 선택하세요(1:가위,2:바위,3:보)

 * */

//==================


//==================











댓글 없음:

댓글 쓰기