티스토리 뷰

 

 

 

구름에듀 5차 6번 문제

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

주어진 코드

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int korean, int english) {
    int answer = 0;

    int math = 210 - korean + english;

    if (math > 100)
        answer = -1;
    else
        answer = math;

    return answer;
}
int main() {
    int korean = 70;
    int english = 60;
    int ret = solution(korean, english);

    printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}

 

 

주어진 코드 결과

korean english return
70 60 80

 

 

 

코드 문제점

int math = 210 - korean + english; 와 같이
총점(만점일 경우) - 국어 점수 + 영어점수 를 하게되면
연산자 우선순위에 따라 앞에 있는 -연산자가 먼저 실행된다.

따라서 (210 - 국어점수) + 영어점수 로 진행된다.

올바른 값을 얻기 위해서는 210 - (국어점수 + 영어점수)로
실행시켜야 하기 때문에
int math = 210 - (korean + english);
으로 코드를 수정해야 한다.

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

완성 코드

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int korean, int english) {
    int answer = 0;

    int math = 210 - (korean + english);

    if (math > 100)
        answer = -1;
    else
        answer = math;

    return answer;
}
int main() {
    int korean = 70;
    int english = 60;
    int ret = solution(korean, english);

    printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}

 

결과

korean english return
70 60 80

 

 

 

 

 

 

 

 

 

 

 


GroomEdu

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

www.goorm.io

 

댓글