C언어/참고서: C언어 콘서트

C언어 18차시 조건문 if else, switch 연습문제 1

Olivia-BlackCherry 2023. 3. 23. 08:47

목차

    1. 동전 던지기 게임

    ♣결과

    ♧코드

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h> //rand()함수를 쓰기 위한 헤더파일
    int main(void)
    {
    	int x;
    	x = rand() % 2;
    	if (x == 1) {
    		printf("뒷면입니다\n");
    	}
    	else
    	{
    		printf("앞면입니다\n");
    	}
    	
    }

    -주의점

    random 수를 생성하기 위해 stdlib.h 헤더 파일을 포함시킨다. 

    rand() 함수는 0~32767까지의 정수 생성

     

     

     

    2. 윤년 판단하기

    윤년의 조건

    1) 연도가 4로 나누어 떨어진다.

    2) 100으로 나누어 떨어지는 연도는 제외한다.

    3) 400으로 나누어 떨어지는 연도는 윤년이다.

     

    ♣결과

    ♧코드

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
    	int year;
    	printf("해당 연도를 입력하세요");
    	scanf("%d", &year);
    
    	if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
    		printf("윤년입니다\n");
    	}
    	else {
    		printf("윤년이 아닙니다\n");
    	}
    	return 0;
    }

     

    -참고

    파이썬으로 윤년 문제를 풀어 놓은 코드이다. 

    https://olivia-blackcherry.tistory.com/46

     

    [3-3 파이썬] %(모듈로), 윤년 확인하기 파이썬 실전예제

    1. 모듈로 % 먼저 모듈로moduler operation를 알아보겠다. 기호는 %이다 예제를 살펴보며 모듈로의 의미를 발견해보자. ex1) 7 % 2 =1 7나누기2는 2 + 2 +2 + 1 이다. 몫이 3이고, 나머지가 1이다. ex2) 7 % 3 = 1 7

    olivia-blackcherry.tistory.com

     

    3. 세 개의 정수 중에 큰 수 찾기

    ♣결과

    ♧코드

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
    	int x, y, z, largest;
    	printf("세 정수를 입력하세요");
    	scanf("%d %d %d", &x, & y, & z);
    
    	largest = x;
    	if (largest<y) {
    		largest=y;
    
    	}
    	if (largest<z){
    		largest=z;
    	}
    	else {
    		largest = x;
    	}
    
    	printf("가장 큰 수는 %d", largest);
    	
    }

     

     

    4. 각 월의 날짜 수 출력하기

    ♣결과

    ♧코드

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
    	int month, days;
    	printf("특정 달을 입력하세요");
    	scanf("%d", &month);
    
    	switch (month)
    	{
    	case 2:
    		days = 28;
    		break;
    	case 4:
    	case 6:
    	case 9:
    	case 11:
    		days = 30;
    		break;
    	default:
    		days = 31;
    		break;
    	}
    	
    	printf("%d월의 일수는 %d\n", month, days);
    	return 0;
    	
    }

     

     

    5. 자격증 시험 합격 여부 조회하기

    ♣결과

    ♧코드

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
    	int a,b,c,d;
    	printf("자격증 시험에 합격했는지 확인하겠습니다. \nA, B, C, D 과목의 점수를 입력해주세요\n");
    	scanf("%d%d%d%d", &a,&b,&c,&d);
    
    	if (a > 50 && b > 50 && c > 50 && d > 50) {
    		if (a + c > 140 || b + d > 130) {
    			printf("합격입니다\n");
    		}
    	}
    	else {
    		printf("불합격입니다.\n\n)");
    	}
    	return 0;
    	
    }

     

     

    6. 다음 문장을 switch를 사용하여 재작성하기

    int main(void)
    {
    	int x, num;
    	if (x == -1)
    		num--;
    	if (x == 1)
    		num++;
    	else
    		num = 0;
    }

    ♣결과

    ♧코드

    	switch (x)
    	{
    	case 0:
    		num--;
    		break;
    	case 1:
    		num++;
            break;
    	default:
    		num = 0;
            break;
    	}