" content="[C언어 Express] 6장 실습코드 답안 :: IT 복수전공 일기장" />

카테고리 없음

[C언어 Express] 6장 실습코드 답안

뱌재데 2024. 6. 25. 23:54
728x90

1. 자음모음

#include <stdio.h>

int main() {
    char ch;
    printf("문자를 입력하시오: ");
    scanf("%c", &ch);

    if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
        switch (ch) {
            case 'a': case 'e': case 'i': case 'o': case 'u':
            case 'A': case 'E': case 'I': case 'O': case 'U':
                printf("모음입니다\n");
                break;
            default:
                printf("자음입니다\n");
        }
    } else {
        printf("알파벳이 아닙니다\n");
    }

    return 0;
}

 

 

2. 자유이용권

#include <stdio.h>

int main() {
    int age;
    printf("나이를 입력하시오: ");
    scanf("%d", &age);

    (age >= 0 && age <= 6) ? printf("무료 이용\n") :
    (age >= 7 && age <= 12) ? printf("어린이 요금 적용\n") :
    (age >= 13 && age <= 18) ? printf("청소년 요금 적용\n") :
    printf("성인 요금 적용\n");

    return 0;
}

 

3. 사분면

#include <stdio.h>

int main() {
    int x, y;
    printf("x 좌표를 입력하시오: ");
    scanf("%d", &x);
    printf("y 좌표를 입력하시오: ");
    scanf("%d", &y);

    (x > 0 && y > 0) ? printf("1사분면\n") :
    (x < 0 && y > 0) ? printf("2사분면\n") :
    (x < 0 && y < 0) ? printf("3사분면\n") :
    (x > 0 && y < 0) ? printf("4사분면\n") :
    printf("좌표축 위에 있습니다\n");

    return 0;
}

 

4. 도형이름

#include <stdio.h>

int main() {
    int sides;
    printf("변의 개수를 입력하시오: ");
    scanf("%d", &sides);

    switch (sides) {
        case 3:
            printf("삼각형\n");
            break;
        case 4:
            printf("사각형\n");
            break;
        case 5:
            printf("오각형\n");
            break;
        default:
            printf("기타 도형\n");
    }

    return 0;
}

 

 

5. 약수

#include <stdio.h>

int main() {
    int num, i;
    printf("정수를 입력하시오: ");
    scanf("%d", &num);
    printf("%d의 약수: ", num);

    for (i = 1; i <= num; i++) {
        if (num % i == 0) {
            printf("%d ", i);
        }
    }

    printf("\n");
    return 0;
}

 

 

6. 중첩반복

#include <stdio.h>

int main() {
    int i, j;
    for (i = 1; i <= 5; i++) {
        for (j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

 

7. 소수

#include <stdio.h>

int main() {
    int num, i, isPrime = 1;
    printf("정수를 입력하시오: ");
    scanf("%d", &num);

    if (num <= 1) {
        isPrime = 0;
    } else {
        for (i = 2; i <= num / 2; i++) {
            if (num % i == 0) {
                isPrime = 0;
                break;
            }
        }
    }

    if (isPrime) {
        printf("%d는 소수입니다\n", num);
    } else {
        printf("%d는 소수가 아닙니다\n", num);
    }

    return 0;
}

 

 

8. 가우스

#include <stdio.h>

int main() {
    int n, sum = 0;
    printf("정수를 입력하시오: ");
    scanf("%d", &n);

    sum = (n * (n + 1)) / 2;

    printf("1부터 %d까지의 합: %d\n", n, sum);

    return 0;
}

 

9. 피보나치

#include <stdio.h>

int main() {
    int n, t1 = 0, t2 = 1, nextTerm = 0;
    printf("정수를 입력하시오: ");
    scanf("%d", &n);

    printf("피보나치 수열: %d, %d, ", t1, t2);

    nextTerm = t1 + t2;

    while (nextTerm <= n) {
        printf("%d, ", nextTerm);
        t1 = t2;
        t2 = nextTerm;
        nextTerm = t1 + t2;
    }

    printf("\n");
    return 0;
}

 

 

10. 순열

#include <stdio.h>

int factorial(int n) {
    if (n == 0) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

int main() {
    int n, r, result;
    printf("n값을 입력하시오: ");
    scanf("%d", &n);
    printf("r값을 입력하시오: ");
    scanf("%d", &r);

    result = factorial(n) / factorial(n - r);

    printf("%dP%d의 값: %d\n", n, r, result);

    return 0;
}

 

 

11. 반전

#include <stdio.h>

int reverse(int n) {
    int rev = 0;
    while (n != 0) {
        rev = rev * 10 + n % 10;
        n /= 10;
    }
    return rev;
}

int main() {
    int num;
    printf("정수를 입력하시오: ");
    scanf("%d", &num);

    printf("반전된 수: %d\n", reverse(num));

    return 0;
}

 

 

12. 주사위

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int roll;
    srand(time(0));

    roll = (rand() % 6) + 1;

    printf("주사위 결과: %d\n", roll);

    return 0;
}