코딩 이야기

[C언어] 성적 석차 구하기 알고리즘 구현하기

고주망고 2021. 7. 11. 10:19

오늘은 성적을 입력받으면 석차를 알려주는 알고리즘을 구현해보려합니다.

예시1) 

예시2) 

예시3) 

 

 

 

간단해보이지만 막상 실제로 해보면 진짜 간단합니다!!

필자의 아이디어 ) 중첩 반복문을 이용하여 스택을 정리하자!!

(중첩 반복문을 쓰지않으면 난이도가 엄청 올라갑니다)

문제: 5명 학생의 성적을 배열에 입력받아 석차를 구하는 알고리즘

풀이:

#include <stdio.h>

int main(void) {
int score[5] = {0};
int Rank[5] = {5,5,5,5,5}; //석차 전부 5등으로 초기화!!
int i = 0, j = 0;

printf("점수를 입력해주세요: ");
for (i = 0; i < 5; i++) {
scanf_s("%d", &score[i]);
}

 

//여기가 이 문제에서 가장 중요한 부분입니다
for (i = 0;i < 5;i++) { 
for (j = i; j < 5; j++) {
if (score[i] < score[j]) {
Rank[j] -= 1;
}
else if(score[i]>score[j]){
Rank[i] -= 1;
}
}
}

printf("등수는: ");

for (i = 0; i < 5; i++) {
printf("%d ", Rank[i]);
}

return 0;
}

 

요점: Rank[i]Rank[j]를 명확하게 구분하기!!

 

 

이상으로 포스팅을 마치겠습니다 감사합니다!

 

C언어에 더 알고 싶다면?

👉C언어 마이크로 소프트 Visual Studio 2019 설치방법은?

👉C언어 알고리즘/순서도/프로그래밍 개념/디버깅이란?

👉C언어로 구사하는 알고리즘 1. 날짜값을 넣으면 해당 요일이 나오는 코딩 예제(윤년계산)

👉C언어로 구사하는 알고리즘 2. 형변환 그레이코드를 만드는 알고리즘

👉C언어로 구사하는 알고리즘 3. 성적 석차 구하기 알고리즘 구현하기

👉C언어로 구사하는 알고리즘 4. 정수 오름차순/내림차순을 구현하는 알고리즘(SORT)