반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5
int main()
{
srand(time(NULL));
int grade[N];
int rank[N];
int i,j;
for(i=0; i<N; i++) {
grade[i] = rand() % 101; // 점수 초기화
rank[i] = 1; // 점수를 다른 사람과 비교하기 전에는 모두 1등일 가능성이 있으므로
// 석차배열을 1로 초기화한다.
}
for(i=0; i<N; i++)
{
for(j=0; j<N; j++) // i번보다 점수가 높은 사람이 있으면 i의 석차를 증가시킨다.
if( grade[i] < grade[j] ) rank[i]++;
}
// 석차를 오름차순으로 출력
for(i=0; i<N; i++)
for(j=0; j<N; j++)
if ( rank[j] == i+1 ) printf("성적 : %d -- %d등\n",grade[j],rank[j]);
}
|
cs |
(i+1) = 석차는 1부터 시작한다.
석차를 내림차순으로 정렬(꼴찌부터 출력)하고 싶다면
비교구문에 i+1대신 N-i를 비교한다.
비교하는 과정은
석차(rank)에서 1등(i+1)을 먼저 찾는다.
찾은 1등의 석차에 대한 점수를 출력하고
그 다음 2등을 찾는 이러한 로직이 반복된다.
석차를 매길 때
만약 공동3등이 나오면 다음 등수는 5등부터이다.
공동3등이 3명인 경우 다음 등수는 6등부터이다
반응형
'프로그래밍 > 시스템' 카테고리의 다른 글
[C] 술래잡기 게임 (0) | 2017.07.14 |
---|---|
[C] atoi - itoa (문자열을 정수로 , 정수를 문자열로 변환) (0) | 2017.07.05 |
[C-알고리즘] 수열 문제 (0) | 2017.06.26 |
[C-알고리즘] 버블정렬,선택정렬,삽입정렬 (0) | 2017.06.25 |
[C-알고리즘] 유클리드 호제법 (0) | 2017.06.16 |