//2. 5명 학생의 국,영,수 점수를 입력받아 학생별 총점,평균
  //                            과목별 총점 출력
  // 1번학생 : 국 영 수 총점 평균
  // 2번학생 : 국 영 수 총점 평균
  // 총점 : 국어 합계, 영어 합계, 수학 합계
  int score[][] = new int[5][3]; // 학생 5명, 3과목
  int sTotal[] = new int[5]; // 학생
  int ScoreTotal[] = new int[3]; // 과목별 총점
  Scanner scan = new Scanner( System.in );
  int snum = 0;
  int cnt = 1;
  
  for( int i=0 ; i<score.length ; i++ ){
   cnt = 1;
   System.out.println( (cnt+i )+ "번째학생 점수");
   for( int j=0 ; j<score[i].length ; j++ ){
    cnt = 1;
    System.out.println("점수" + (cnt+j) + ":");
    snum = scan.nextInt();
    score[i][j] = snum;
   }
   System.out.println();
  }
  
  // 결과 출력
  System.out.println("번호\t국어\t영어\t수학\t총점\t평균");
  System.out.println("============================================");
  int ccnt = 1;
  int Total = 0;
  for( int i=0 ; i<score.length ; i++ ){
   System.out.print( ccnt + "번\t");
   for( int j=0 ; j<score[i].length ; j++ ){
    System.out.print(score[i][j] + "\t");
    Total += score[i][j];
   }
   System.out.print(Total + "\t");  // 학생 총 점수
   System.out.print( (float)Total/3 );  // 학생 점수 평균
   System.out.println();
   Total = 0;
   ccnt++;
  }
  
  System.out.println("============================================");
  System.out.print("총점\t");
  int[] sss = new int[3];
  for( int j=0 ; j<score.length ; j++ ){
   for( int i=0 ; i<3 ; i++ ){
    sss[i] += score[j][i];
   }
  }
  for( int i=0 ; i<ScoreTotal.length ; i++ ){
   System.out.print(sss[i] + "\t");
  } 

'Java !!! > step_3' 카테고리의 다른 글

2중 배열의 각각 행,열 더하기  (0) 2015.03.27
랜덤 함수 import 및 Math.random  (0) 2015.03.26
중복해서 쓸수도 있다.  (0) 2015.03.26
print 씨리즈 여러개 사용했던 방법  (0) 2015.03.26
여기 까지의 로또  (0) 2015.03.26

2중 배열의 각각 행,열 더하기

Posted 2015. 3. 27. 14:05
int[][] arr = {
    {10,20},
    {30,40},
    {50,60}
    };
  for( int i=0 ; i<arr.length ; i++ ){
   for( int j=0 ; j<arr[i].length ; j++ )
   {
    System.out.print("arr["+i+"]["+j+"]="+arr[i][j]+"\t");
   }
   System.out.println();
  }
  
  // 행의 합( 10+20, 30+40, 50+60 = 30, 70, 110 )
  int[] T1 = new int[3];
  for( int i=0 ; i<arr.length ; i++ ){
   for( int j=0 ; j<arr[i].length ; j++ ){
    T1[i] += arr[i][j];
   }
  }
  for( int i=0 ; i<3 ; i++ ){
   System.out.println(T1[i]);
  }
  
  
  // 열의 합( 10+30+50, 20+40+60 = 90,120 )
  int[] T2 = new int[2];
  for( int j=0 ; j<arr[0].length ; j++ ){
   for( int i=0 ; i<arr.length ; i++ ){
    T2[j] += arr[i][j];
   }
  }
  for( int i=0 ; i<T2.length ; i++ ){
   System.out.println(T2[i]);
  }

 

랜덤 함수 import 및 Math.random

Posted 2015. 3. 26. 18:33

컴퓨터가 정한 랜덤 수를 입력자가 맞춘다.

int answer = (int)(Math.random() * 100); // 컴퓨터가 정한 랜덤 수
  int input = 0; // 입력 받을 수
  int count = 0; // 맞춘 시도 횟수
  Scanner s = new Scanner( System.in );
   
//  for( ; ; ){
  while(true){
   count++;
   
   System.out.print("1과 100사이의 값을 입력 하세요 : ");
   input = s.nextInt();

   if( input > answer ){
    System.out.print(" 숫자가 높음 \n ");
   }
   else if( input < answer ){
    System.out.print(" 숫자가 낮음  \n");
   }
   else{
    System.out.println("시도 횟수 : " + count);
    break;
   }
  }

중복해서 쓸수도 있다.

Posted 2015. 3. 26. 18:32

함수가 끝나지 않아도 재활용이 가능하다.

int[] arr = {10, 20, 30, 40, 50};
  for( int i=0 ; i<5 ; i++ ){
   System.out.println(arr[i]);
  }
  
  // JVM의 가비지컬렉터로 인해 기존 데이터 삭제 되고 새로운 데이터를 만들어낸다.
  // 이거 땜시 느린자바.
  // C의 STL 컨테이너 기능이 배열에 들어있네..
  arr = new int[]{ 100, 200, 300 };
  
  for( int i=0 ; i<arr.length ; i++ ){
   System.out.println(arr[i]);
  }

 

기본적으로 println 에는 \n이 포함 되어 있어서 다음 칸으로 넘어가 버린다

print 에는 \n이 제외 되어 있다.

for로 돌리면 행으로 붙어서 나온다. + " " 를 통해서 데이터를 붙여서 출력한다.

 

int arr[] = new int[10];
  float Total = 0;
  Scanner s = new Scanner( System.in );
  for( int i = 0 ; i < arr.length ; i++ )
  {
   System.out.println( (i+1) +"번 학생의 점수 : ");
   arr[i] = s.nextInt();
   Total += arr[i];
  }
  
  System.out.println("평균 : " + (Total / arr.length) );
  System.out.print("점수 : ");
  for( int z = 0 ; z < arr.length ; z++)
  {
   if( (z + 1) == arr.length )
    System.out.print(arr[z] + "=" + (int)Total);
   else
    System.out.print(arr[z] + "+");
  }

여기 까지의 로또

Posted 2015. 3. 26. 18:28

두가지 방법.

1. 이중포문을 사용해서 하나를 갯수만큼 비교 하는 방법

2. 이미 번호를 갯수만큼 깔아두고 특정 카운트 만큼 스왚하는 방법.

 

 

int lotto[] = new int[6];
/*
  //#1. 일반적인 포문
  int ball;
  while(true)
  {
   ball = (int)(Math.random() * 45 ) + 1;
   int i = 0;
   for( i=0 ; i < lotto.length ; i++ )
   {
    if( ball == lotto[i] ) break;
    if( lotto[i] == 0 )
    {
     lotto[i] = ball;
     break;
    }
   }
   if( i == lotto.length ) break;
  }
 
//  System.out.println("정렬 전");
  for( int i=0 ; i < lotto.length ; i++ )
  {
   System.out.print(lotto[i] + " ");
  }
*///#2. 정해 진 숫자를 늘어 뜨린후 섞는 방법
  int ball[] = new int[45];
  for( int i = 0 ; i < ball.length ; i ++){
   ball[i] = i+1;
  }
  for( int i = 0 ; i < 10000 ; i++ ){ // 10000번 섞는다
   int index = (int)(Math.random() * 45 );
   int temp = ball[0]; // 스왚을 이용해서 섞는군..
   ball[0] = ball[index];
   ball[index] = temp;
  }

  System.out.println("정렬 전");
  for( int i=0 ; i < 6 ; i++ ){ // 6개만 출력한다. 앞에꺼로.
   lotto[i] = ball[i];
   System.out.print(lotto[i] + " ");
  }
  
  System.out.println("\n정렬 후");
  for( int i = 0 ; i < lotto.length ; i++)
  {
   for( int j = 0 ; j <  lotto.length-1-i; j++ )
   {
    if( lotto[j] > lotto[j+1] )
    {
     // 크면 바꿈
     int temp = lotto[j];
     lotto[j] = lotto[j+1];
     lotto[j+1] = temp;
    }
   }
  }
  for( int k=0 ; k < 6 ; k++ )
  { 
   System.out.print(lotto[k] + " ");
  }
 }