- 전체
- C/C++ 일반
- C/C++ 수학
- C/C++ 그래픽
- C/C++ 자료구조
- C/C++ 인공지능
- C/C++ 인터넷
- wxWidget
- GTK+
- UNIX or LINUX programming
- 리눅스 마스터 - 국가공인자격
- VC++/ MFC
- C#/CLI/.NET
- QT/기타UI
- Boost lib
- 오픈소스 C 분석자료
- MSA (마이크로서비스), Docker, kubernetes
- WSL(windows subsystem linux)
[C_ALGO] p.31 개선된 순위 매김
2012.07.29 18:24
점수 범위를 0~100으로 하고 이를 배열 첨자로 한다. rank[0] ~ rank[100]의 배열과 여분으로 rank[101] 요소를 사용하고 각 요소의 값을 0으로 초기화 한다. 우선 각 점수를 점자로 하는 배열 요소에 1을 더한다. 그리고 101번 요소에 초기값1(순위1)을 넣고 rank[100] -> rank[0]의 각 배열에 대해 오른쪽 요소의 값을 더해 간다. 100점의 순위는 101번 위치에, 88점 순위는 89번 위치에 저장되어 있는 상태가된다. */ #include <stdio.h> #define Num 10 #define Max 100 #define Min 0 int main(int argc, char *argv[]) { static int a[]={ 56, 25, 67, 88, 100, 61, 55, 67, 76, 56 }; int i, rank[Max+2]; for(i=Min; i<=Max; i++) rank[i] = 0; /* 0으로 초기화 */ for(i=0; i<Num;i++) rank[a[i]]++; /* 각 점수를 첨자로 하는 배열요소에 + 1 */ rank[Max+1] = 1; for(i=Max; i>=Min; i--) rank[i]=rank[i]+rank[i+1]; /* 바로 오른쪽 요소의 값을 더함 */ printf("점수 순위\n"); for(i=0; i<Num; i++) printf("%6d%6d\n", a[i], rank[a[i]+1]); /* 점수+1의 위치에 순위저장됨 */ } |
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 8 | systemcall을 hooking 해 볼까요? | 졸리운_곰 | 2015.06.16 | 600 |
| 7 |
리눅스 화면 녹화 : Linux Screen Recoding to make Movie
| 졸리운_곰 | 2015.05.09 | 564 |
| 6 |
도커(docker) 리눅스 경량(가벼운)가상화 프로그램 기본 및 설치 사용
| 졸리운_곰 | 2015.01.28 | 967 |
| 5 | system 다른 프로그램 실행 및 대기 | 졸리운_곰 | 2014.10.27 | 756 |
| 4 |
Ubuntu Qt install (우분투 Qt 설치하기)
| 졸리운_곰 | 2014.10.09 | 590 |
| 3 | Linux Qt Creator Installation | 졸리운_곰 | 2014.09.17 | 508 |
| 2 | 파일의 존재여부 검사 [access()함수] access() 파일 존재나 접근 권한을 확인합니다. | 졸리운_곰 | 2014.03.03 | 1290 |
| 1 | linux c 파일 접근권한 정보 가져오기 | 졸리운_곰 | 2014.02.28 | 1163 |

