1 / 8

실습 : 최대치 구하기

실습 : 최대치 구하기. 배열 score 에 저장된 5 개의 정수 중에서 최대치를 max 에 구하기 알고리즘 일단 최대치 max 를 배열원소 중 하나 로 정한다 . 보통 첫번째 원소로 지정 max = score[0]; 배열 score 의 나머지 모든 원소 score[i] 에 대하여 차례대로 max 와 비교하여 큰 값이 max 에 저장되도록 한다 . if (max < score[i]) max = score[i]; 최종적으로 max 에 들어 있는 값이 최대치가 된다 . 실습

Download Presentation

실습 : 최대치 구하기

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 실습: 최대치 구하기 배열 score에 저장된 5개의 정수 중에서 최대치를 max에 구하기 • 알고리즘 • 일단 최대치 max를 배열원소 중 하나로 정한다. • 보통 첫번째 원소로 지정 max = score[0]; • 배열 score의 나머지 모든 원소 score[i]에 대하여 차례대로 max와 비교하여 큰 값이 max에 저장되도록 한다. • if (max < score[i]) max = score[i]; • 최종적으로 max에 들어 있는 값이 최대치가 된다. • 실습 • 5명 학생의 수학점수(80, 90, 51, 60, 70)에 대해서 최대치와 최소치를 구하여 출력하기

  2. 실습: 최대치 구하기 max = score[0]; for ( i= _____ ; i < N ; i++) { if ( ) ________________; } printf(“최대치: %d “, max);

  3. 실습: 표준 편차 구하기 • 표준 편차 구하기 • xi : i번째 학생의 점수 • m : n 명의 평균 • a의 제곱근 : sqrt(a) , an : pow(a, n); • #include <math.h>가 필요함 • 실습 #define N 5 int s[N]={66, 88, 99, 55, 77};일 때 표준편차 구하기

  4. [실습] 석차 구하기 ==================== 국어 수학 평균 석차 ==================== 90 81 85.50 2 80 91 85.50 2 70 81 75.50 4 60 81 70.50 5 100 100 100.00 1 • 나의 석차 • 나보다 점수가 높은 사람의 수 + 1 • 초기화 int kor[5]={90, 80, 70, 60, 100}; int math[5]={81, 91, 81, 81, 100}; int order[5]; double ave[5]; • 알고리즘 • kor[i], math[i]를 이용하여 ave[i]를 구함 • 배열 ave의 값으로 석차 order[i]를 구함 • kor, math, ave, order 배열을 출력

  5. [실습] 석차 구하기 ==================== 국어 수학 평균 석차 ==================== 90 81 85.50 2 80 91 85.50 2 70 81 75.50 4 60 81 70.50 5 100 100 100.00 1 • 학생의 평균 • ave[i]= (double) (kor[i]+math[i]) / 2; • 첨자가 i인 학생의 석차 order[i] • 나의 석차 order[i]를 1로 초기화 • 나의 평균(ave[i])과 모든 학생의 평균(ave[u], u=0~N-1)을차례로 비교하면서내 평균이 ave[u]보다 작을 때마다나의 석차(order[i])를 1 증가  order[i]에는 첨자 i에 해당하는 학생의 석차가 저장된다.

  6. [실습] 석차 구하기 i가 0일 때부터 N-1일 때까지 사각형 부분을 반복하면 모든 학생의 석차가 구해진다. order[0]=1; for (u=0; u<N; u++) { if (ave[0] < ave[u]) order[0]++; } ==================== 국어 수학 평균 석차 ==================== 90 81 85.50 2 80 91 85.50 2 70 81 75.50 4 60 81 70.50 5 100 100 100.00 1 order[1]=1; for (u=0; u<N; u++) { if (ave[1] < ave[u]) order[1]++; } : order[4]=1; for (u=0; u<N; u++) { if (ave[4] < ave[u]) order[4]++; }

  7. 최대치를 배열의 맨 뒤로 옮기기 a a 70 90 • 두 변수의 값을 바꾸기 b b 90 70 temp=a; a = b; (*) b=temp; a=b; (1) b=a; (2) 문제점 :(1)을 수행하면 다음과 같이 두 변수의 값이 같아짐(a의 원래 값이 지워지므로 b의 값을 70으로 바꿀 방법이 없어짐) 해결: (*)를 수행하기 전에 a의 원래 값을 다른 변수에 저장해 둔다. (*)수행후 temp 70 70 90 a a 70 90 b 90 b 90

  8. 최대치를 배열의 맨 뒤로 옮기기 • 이웃하는 두 원소 중 큰 값을 뒤의 원소가 되게 하는 것을 반복함 맨 마지막 원소에 가장 큰 값이 저장되게 된다. if ( n[i] > n[i+1] ) n[i]와 n[i+1]을 교환 이웃한 두 원소 중 큰 값은 계속해서 뒤로 밀려 맨 마지막에 위치하게 됨

More Related