minError

C언어 문제 풀이 [ 홀수, 짝수 ] 본문

Study-ing/C

C언어 문제 풀이 [ 홀수, 짝수 ]

동빠기 2020. 2. 25. 15:29

본 내용은 프로그래머스 "짝수와 홀수" 문제풀이를 참조 하였습니다.

https://programmers.co.kr/learn/courses/30/lessons/12937

 

Solution1

 

 

 

 

 

#include <stdio.h>

#include <stdbool.h>

#include  <stdlib.h>


char* solution(int num) {

    // 리턴할 값은 메모리를 동적 할당해주세요
    
    char* answer = (char*)malloc(sizeof(char)*5);
    
    if(num % 2 ==0)answer = "Even";
    
    else answer = "Odd";
    
    
    return answer;
    
}

 

 

 

 

 

문제는 즉슨,

정수 num이 짝수일 경우 "Even", 홀수인 경우 "Odd"를 반환하는 문제 인데요.

기본적으로 주어지는 조건은 오른쪽과 같습니다.

 

 

여기에 문자의 글자수를 할당해 주어야되어서,

Even의 글자수 ('\0'은 5개이므로 char형 사이즈 5개를 동적 할당해 주었습니다.)

malloc안에 sizeof(char)*5 기입해 주고,

 

 

조건문을 사용해 num을 2로 나누었을때 나오는 나머지에 따라

짝수와 홀수를 구분하는 구문을 아래와 같이 사용하였습니다.

 

 

 


 

Solution2

 

 

 

 

위와 같이 리턴할 값 메모리를 동적 할당하는 경우가 있고,

아래와 같은 방법으로도 짝수와 홀수를 나눌수 있습니다.

 

 

 

 

 

위와 같은 방법은 메모리를 굳이 할당하지 않아도

짝수와 홀수를 구분하여 출력할수 있습니다.

 

 

 


 

 

Solution3

 

 

 

#include <stdio.h>

#include <stdbool.h>

#include <stdlib.h>


char* solution(int num) {

return num%2==0 ? "Even":"Odd";

}

 

 


 

 

< 이 문제에서 알수 있는 문법 >

 

_ '%d' _

 

서식 지정자(format specifier) 중 하나로, %d는 부호 있는 10진 정수를 나타 냅니다.

 

https://co-ding.tistory.com/15?category=751635

위의 링크 참조하시면, 좀더 다양한 내용을 확인해 볼 수 있습니다.

 

 

 

_ '&'의 쓰임 _

 

scanf() 함수에 포함된 '&'기호는 주소 연산자(&)라고 합니다.

이 주소 연산자는 입력받은 데이터를 뒤에 나오는 변수에 저장하라는 의미

 

https://co-ding.tistory.com/16?category=751635

위의 링크 참조하시면, 좀더 다양한 내용을 확인해 볼 수 있습니다.

 

 

 

_ '==' _

 

비교 연산자중 하나로 'A == B' 인 경우, A와 B는 같다라는 의미이다.

true혹은 false로 비교를 하는 비교 연산자의 종류중 하나로 A,B가 같을경우? true를 출력하게 됩니다. 

https://co-ding.tistory.com/23

위의 링크 참조하시면, 좀더 다양한 내용을 확인해 볼 수 있습니다.

Comments