강의로 돌아가기
김진겸

c언어 5번 케이스 틀리는 이유?

이 코드로 작성하였는데 5번 케이스만 틀리네요... 이유 좀 알 수 있을까요?

작성중인 코드―solution.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int ar[], size_t array_len) {
    int answer = 0;
    int temp,i,j;
    for(i = 0; i < array_len; i++){
        for(j = 1; j < array_len; j++){
            if(ar[i] > ar[j]){
                temp = ar[i];
                ar[i] = ar[j];
                ar[j] = temp;
            }

        }
    }
    answer = ar[(array_len/2)+(array_len%2)];
    return answer;
}
1 개의 답변
audrms950@gmail.com

예외처리 때문 입니다! 길이가 1일때 ar[(arraylen/2)+(arraylen%2)]; 이 아니라 해당 숫자를 반환 해주셔아 합니다!
아래 조건만 달아주시면 무사 통과 됩니다!
answer = arraylen != 1 ? ar[(arraylen/2)+(array_len%2)] : ar[0];

답변 쓰기
This input form supports markdown syntax. Please refer to 마크다운 가이드.