[C언어 코드업 문제풀이] CodeUp1162 : 당신의 사주를 봐 드립니다 1

코드업 1162번 당신의 사주를 봐 드립니다 문제 풀이 해답입니다.

 

1. 문제 설명

 

태어난 해, 월, 일을 입력받아 사주팔자를 보는 프로그램을 작성하시오.

사주를 보는 방법)

세 수(년,월,일)가 주어지면,  (년 - 월 + 일)에 마지막 숫자가 0이면 "대박"을 출력, 그렇지 않으면 "그럭저럭"을 출력하세요.

 

2. 입력

 

세 정수가 입력으로 주어진다. 순서대로 년도, 월, 일 이다.

 

3. 출력

 

년도 - 월 + 일의 마지막 숫자가 0이면 "대박"을 , 그렇지 않으면 "그럭저럭"을 출력하시오.

 

4. 입력 예시

 

1902 2 10

 

5. 출력 예시

 

대박

 

6. 문제 풀이

 

마지막자리가 0인지 알아내려면...?

 

#include <stdio.h>
 
 
int main (void)
{
    //년,월,일, 합 정수 선언
    int year,mon,day, sum;
    scanf("%d %d %d ",&year , &mon, &day);
    sum = year - mon + day; //사주는 년 - 월+일
    
    if!(sum%=10) ){printf("대박");} //10으로 나눈값이 0이라면 1로(참) 변환, 반대면 0으로 거짓이됨
    else {printf("그럭저럭");}// 아니면( 0 이 아니면)
    
 
    return 0;
}
 

 

10으로 나눈 나머지가 0이라면 마지막 숫자는 0입니다.

예)

 2001 %10  = 1

 2023 % 10 = 3

 2000 % 10 = 0

 

 !(sum%=10) , 마지막 숫자가 0이면 대박이지만 if문은 참에서만 동작합니다. (sum%=10) 은 0이므로 참으로 

만들어 주기위해 NOT 연산자 !을 사용하였습니다.

(sum%10 == 0) 으로 사용하셔도 무방합니다.

 

 

댓글()