C언어 간단한 프로그램 1

2025. 6. 17. 14:01·C/Task

 

 

 

 

 

 

 

 

 

 

 

 

🌟 프로그램 1,  계산기

더보기
#include <stdio.h>

// 사칙연산 함수들
int add(int a, int b) {
    return a + b;
}

int min(int a, int b) {
    return a - b;
}

int mul(int a, int b) {
    return a * b;
}

int div(int a, int b) {
    if (b != 0) {
        return a / b;
    } else {
        printf("0으로 나눌 수 없습니다.\n");
        return 0; // 오류 처리
    }
}

int per(int a, int b) {
    if (b != 0) {
        return a % b;
    } else {
        printf("0으로 나눌 수 없습니다.\n");
        return 0; // 오류 처리
    }
}

int rem(int a, int b) {
    if (b != 0) {
        return a / b; // 몫 계산
    } else {
        printf("0으로 나눌 수 없습니다.\n");
        return 0; // 오류 처리
    }
}

int main() {
    int x, y;
    char z;

    // 사용자로부터 두 정수와 연산자 입력 받기
    printf("정수(2개)를 입력하세요: ");
    scanf("%d %d", &x, &y);

    printf("(+, -, *, /, %, //) 중에 하나 입력해주세요: ");
    scanf(" %c", &z); // 공백을 넣어 앞의 입력 버퍼 비우기

    // 연산 처리
    int plus = add(x, y);
    int miu = min(x, y);
    int mull = mul(x, y);
    int dive = div(x, y);
    int perc = per(x, y);
    int remm = rem(x, y);

    // 연산자에 맞는 결과 출력
    switch (z) {
        case '+':
            printf("%d + %d = %d\n", x, y, plus);
            break;
        case '-':
            printf("%d - %d = %d\n", x, y, miu);
            break;
        case '*':
            printf("%d * %d = %d\n", x, y, mull);
            break;
        case '/':
            if (y != 0) {
                printf("%d / %d = %d\n", x, y, dive);
            }
            break;
        case '%':
            if (y != 0) {
                printf("%d %% %d = %d\n", x, y, perc);
            }
            break;
        case '//':  // 몫 연산자
            if (y != 0) {
                printf("%d // %d = %d\n", x, y, remm);
            }
            break;
        default:
            printf("잘못된 연산자입니다.\n");
            break;
    }

    return 0;
}

 

 

 

🌟 프로그램 2,  도형 넓이, 둘레 구하기

더보기
#include <stdio.h>

// 사각형의 넓이, 원의 넓이, 삼각형의 넓이, 원의 둘레
int quad(int a, int b) {
    return a * b;
}

// 원의 넓이 (파이 값을 float로 다루기)
float circle(int a) {
    return a * a * 3.14;  // 원의 넓이: π * r^2
}

// 삼각형의 넓이
float triangle(int a, int b) {
    return a * b * 0.5;  // 삼각형의 넓이: 0.5 * 밑변 * 높이
}

// 원의 둘레
float pie(int a) {
    return 2 * 3.14 * a;  // 원의 둘레: 2 * π * r
}

int main() {
    int x, y, z;

    printf("1. 사각형의 넓이\n");
    printf("2. 원의 넓이\n");
    printf("3. 삼각형의 넓이\n");
    printf("4. 원의 둘레\n");

    printf("1, 2, 3, 4 중에 하나 입력해주세요: ");
    scanf(" %d", &z); // 공백을 넣어 앞의 입력 버퍼 비우기

    // 연산자에 맞는 결과 출력
    switch (z) {
        case 1:  // 사각형의 넓이
            printf("사각형의 두 변의 길이를 입력하세요: ");
            scanf("%d %d", &x, &y);
            printf("사각형의 넓이 = %d * %d = %d\n", x, y, quad(x, y));
            break;
        case 2:  // 원의 넓이
            printf("원의 반지름을 입력하세요: ");
            scanf("%d", &x);
            printf("원의 넓이 = %d * %d * 3.14 = %.2f\n", x, x, circle(x));
            break;
        case 3:  // 삼각형의 넓이
            printf("삼각형의 밑변과 높이를 입력하세요: ");
            scanf("%d %d", &x, &y);
            printf("삼각형의 넓이 = %d * %d * 0.5 = %.2f\n", x, y, triangle(x, y));
            break;
        case 4:  // 원의 둘레
            printf("원의 반지름을 입력하세요: ");
            scanf("%d", &x);
            printf("원의 둘레 = 2 * 3.14 * %d = %.2f\n", x, pie(x));
            break;
        default:
            printf("잘못된 선택입니다.\n");
            break;
    }

    return 0;
}

 

 

 

🌟 프로그램 3,  양-0-음수, 홀-짝수, 큰-작은 수 찾기

더보기
#include <stdio.h>

int analyze_numbers() {
    int nums;

    printf("몇 개의 숫자를 입력하겠습니까?: ");
    scanf("%d", &nums);

    int arr[nums];  
    int max, min;


    printf("%d개의 숫자를 입력하세요.\n", nums);
    printf("숫자를 입력하세요: ");
    scanf("%d", &arr[0]);
    max = min = arr[0];  

    for (int i = 1; i < nums; i++) {
        scanf("%d", &arr[i]);
        
        if (arr[i] > max) {
            max = arr[i];
        } else if (arr[i] < min) {
            min = arr[i];
        }
    }

    printf("가장 큰 수: %d\n", max);
    printf("가장 작은 수: %d\n", min);

    for (int j = 0; j < nums; j++) {
        const char* parity = (arr[j] % 2 == 0) ? "짝수" : "홀수";  
        const char* sign = (arr[j] > 0) ? "양수" : ((arr[j] == 0) ? "0" : "음수"); 

        printf("%d: %s, %s\n", arr[j], parity, sign);  
    }

    return 0;
}

int main() {
    analyze_numbers();
    return 0;
}

 

 

 

🌟 프로그램 4,  가장 큰 수 - 작은 수 사이의 합

더보기
#include <stdio.h>

int sum_of_numbers() {
    int arr[3];  
    int max, min;
    int sum = 0;

    printf("숫자를 입력하세요: ");
    scanf("%d", &arr[0]);
    max = min = arr[0];  

    for (int i = 1; i < 3; i++) {
        scanf("%d", &arr[i]);
        
        if (arr[i] > max) {
            max = arr[i];
        } else if (arr[i] < min) {
            min = arr[i];
        }
    } 

    printf("가장 큰 수: %d\n", max);
    printf("가장 작은 수: %d\n", min);

    for (int j = min; j <= max; j++) {
        sum += j;
    }
    printf("합: %d", sum);
    return 0;
}

int main() {
    sum_of_numbers();
    return 0;
}

 

 

 

🌟 프로그램 5,  별찍기

더보기
#include <stdio.h>

int draw_shape(int shape_num) {
    int i, j;
    
    if (shape_num == 1) {
        for (i = 1; i <= 6; i++) {
            for (j = 0; j < i; j++) {
                printf("*");
            }
            printf("\n");
        }
    }
    else if (shape_num == 2) {
        for (i = 1; i <= 6; i++) {
            for (j = 0; j < (7 - i); j++) {
                printf(" ");
            }
            for (j = 0; j < i; j++) {
                printf("*");
            }
            printf("\n");
        }
    }
    else if (shape_num == 3) {
        for (i = 6; i >= 1; i--) {
            for (j = 0; j < i; j++) {
                printf("*");
            }
            printf("\n");
        }
    }
    else if (shape_num == 4) {
        for (i = 6; i >= 1; i--) {
            for (j = 0; j < (6 - i); j++) {
                printf(" ");
            }
            for (j = 0; j < i; j++) {
                printf("*");
            }
            printf("\n");
        }
    }
    else if (shape_num == 5) {
        for (i = 1; i <= 6; i++) {
            for (j = 0; j < (6 - i); j++) {
                printf(" ");
            }
            for (j = 0; j < (2 * i - 1); j++) {
                printf("*");
            }
            printf("\n");
        }
    }
    else if (shape_num == 6) {
        for (i = 6; i >= 1; i--) {
            for (j = 0; j < (6 - i); j++) {
                printf(" ");
            }
            for (j = 0; j < (2 * i - 1); j++) {
                printf("*");
            }
            printf("\n");
        }
    }
    else if (shape_num == 7) {
        for (i = 1; i <= 3; i++) {
            for (j = 0; j < (3 - i); j++) {
                printf(" ");
            }
            for (j = 0; j < (2 * i - 1); j++) {
                printf("*");
            }
            printf("\n");
        }
        for (i = 3; i >= 1; i--) {
            for (j = 0; j < (3 - i); j++) {
                printf(" ");
            }
            for (j = 0; j < (2 * i - 1); j++) {
                printf("*");
            }
            printf("\n");
        }
    }
    else {
        printf("1에서 7 사이의 숫자를 입력하세요.\n");
    }

    return 0;
}

int main() {
    int shape_num;
    
    printf("도형 번호 입력 (1 ~ 7): ");
    scanf("%d", &shape_num);

    draw_shape(shape_num);

    return 0;
}

 

 

 

🌟 프로그램 6,  별로 삼각형 만들기

더보기
#include <stdio.h>

int draw_shape(int n) {

    int i, j;

    for (i = 1; i <= n; i++) {
            for (j = 0; j < (n - i); j++) {
                printf(" ");
            }
            for (j = 0; j < (2 * i - 1); j++) {
                printf("*");
            }
            printf("\n");
        }
    return 0;
}

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

    draw_shape(num);

    return 0;
}

 

 

 

🌟 프로그램 7,  빈 다이아몬드 만들기

더보기
#include <stdio.h> 

int print_diamond_with_x(int num) {
    if (num <= 0) {
        printf("프로그램을 종료합니다.\n");
        return 1; // 종료 신호 반환
    }

    int n = num;
    if (n % 2 == 0) {
        n -= 1;
        printf("입력값이 짝수이므로 %d으로 조정하여 출력합니다.\n", n);
    }

    int mid_row = n / 2;

    for (int i = 0; i < n; i++) {
        int dist = i - mid_row;
        if (dist < 0) {
            dist = -dist; 
        }

        int x_count = dist;
        int space_count = n - 2 * dist;

        for (int j = 0; j < x_count; j++) {
            printf("X");
        }

        for (int j = 0; j < space_count; j++) {
            printf(" ");
        }

        for (int j = 0; j < x_count; j++) {
            printf("X");
        }

        printf("\n");
    }

    return 0; 
}

int main() {
    int num;

    while (1) { 
        printf("정수를 입력하세요 (0 이하 입력 시 종료): ");
        if (scanf("%d", &num) != 1) {
            printf("잘못된 입력입니다. 정수를 입력해주세요.\n");
            while (getchar() != '\n');
            continue; 
        }

        if (print_diamond_with_x(num) == 1) {
            break;
        }
    }

    return 0;
}

 

 

 

🌟 프로그램 8,  꽉찬 다이아몬드 만들기

더보기
#include <stdio.h> // 표준 입출력 함수를 사용하기 위해 포함

// 사용자로부터 입력받은 정수를 기준으로 피라미드 형태의 다이아몬드 모양을 출력하는 함수
// 프로그램 종료가 필요하면 1을 반환, 계속 진행하면 0을 반환합니다.
int print_pyramid_diamond(int num) {
    // 입력값이 0 이하인 경우 종료 신호를 반환합니다.
    if (num <= 0) {
        printf("프로그램을 종료합니다.\n");
        return 1; // 종료 신호 반환
    }

    // 입력값이 짝수인 경우 1을 빼서 홀수로 만듭니다.
    int n = num;
    if (n % 2 == 0) {
        n -= 1;
        printf("입력값이 짝수이므로 %d으로 조정하여 출력합니다.\n", n);
    }

    // n이 1보다 작거나 같으면 (조정 후 1이 되면) 그냥 'X' 하나만 출력
     if (n <= 1) {
         printf("X\n");
         return 0;
    }


    // 중앙 행 인덱스 계산
    int mid_row = n / 2;

    // 각 행을 순회하며 출력
    for (int i = 0; i < n; i++) {
        int space_count, x_count;

        // 현재 행에 해당하는 공백 및 'X' 개수 계산
        if (i <= mid_row) { // 상단 삼각형 및 중앙 행
            space_count = mid_row - i;
            x_count = 2 * i + 1;
        } else { // 하단 삼각형
            // 하단 삼각형의 패턴은 상단 삼각형을 뒤집은 것과 같습니다.
            // 상단 삼각형의 i번째 행은 하단 삼각형의 (n-1-i)번째 행과 대칭입니다.
            space_count = i - mid_row;
            x_count = 2 * (n - 1 - i) + 1;
        }

        // 공백 출력
        for (int j = 0; j < space_count; j++) {
            printf(" ");
        }

        // 'X' 출력
        for (int j = 0; j < x_count; j++) {
            printf("X");
        }

        // 행의 끝에서 줄 바꿈
        printf("\n");
    }

    return 0; // 계속 진행 신호 반환
}

int main() {
    int num;

    while (1) { // 무한 루프
        printf("정수를 입력하세요 (0 이하 입력 시 종료): ");

        // 사용자로부터 정수 입력 받기
        if (scanf("%d", &num) != 1) {
            // 입력 오류 처리 (정수가 아닌 값 입력 시)
            printf("잘못된 입력입니다. 정수를 입력해주세요.\n");
            // 입력 버퍼 비우기 (무한 루프 방지)
            while (getchar() != '\n');
            continue; // 다음 반복으로 넘어감
        }

        // print_pyramid_diamond 함수를 호출하고 반환 값을 확인합니다.
        if (print_pyramid_diamond(num) == 1) {
            // 함수에서 1을 반환했으면 (종료 신호) 루프를 종료합니다.
            break;
        }
    }

    return 0; // 프로그램 정상 종료
}

 

 

 

🌟 프로그램 9, 나비 넥타이 만들기

더보기
#include <stdio.h>

int print_buterfly(int n) {
    if (n <= 0) {
        printf("프로그램을 종료합니다.\n");
        return 1;
    }

    int i, j;
    int half = n / 2;

    for (i = 1; i <= half; i++) {
        // 왼쪽 X
        for (j = 1; j <= i; j++) {
            printf("X");
        }
        // 가운데 공백
        for (j = 1; j <= n - 2 * i; j++) {
            printf(" ");
        }
        // 오른쪽 X
        for (j = 1; j <= i; j++) {
            printf("X");
        }
        printf("\n");
    }

    // 가운데 줄
    for (j = 1; j <= n; j++) {
        printf("X");
    }
    printf("\n");

    // 아래 대칭 부분
    for (i = half; i >= 1; i--) {
        // 왼쪽 X
        for (j = 1; j <= i; j++) {
            printf("X");
        }
        // 가운데 공백
        for (j = 1; j <= n - 2 * i; j++) {
            printf(" ");
        }
        // 오른쪽 X
        for (j = 1; j <= i; j++) {
            printf("X");
        }
        printf("\n");
    }

    return 0;
}

int main() {
    int n;

    while (1) { 
        printf("정수를 입력하세요 (0 이하 입력 시 종료): ");

        if (scanf("%d", &n) != 1) {
            printf("잘못된 입력입니다. 정수를 입력해주세요.\n");
            while (getchar() != '\n');
            continue; 
        }

        if (print_buterfly(n) == 1) {

            break;
        }
    }

    return 0; 
}

 

 

 

🌟 프로그램 10, 화살표 만들기

더보기
#include <stdio.h>

int print_buterfly(int n) {
    if (n <= 0) {
        printf("프로그램을 종료합니다.\n");
        return 1;
    }

    int i, j;
    int upper = n / 2;
    int lower = n - upper; 

    for (i = 1; i <= upper; i++) {
        for (j = 0; j < upper - i; j++) {
            printf("  ");
        }
        for (j = 0; j < 2 * i - 1; j++) {
            printf("* ");
        }
        printf("\n");
    }

    int width = 2 * upper - 1; 
    int padding = (width - (upper + 1)) / 2;
  
    for (i = 0; i < lower; i++) {
        for (j = 0; j < padding; j++) {
            printf("  ");
        }
        for (j = 0; j < upper + 1; j++) {
            printf("* ");
        }
        printf("\n");
    }

    return 0;
}

int main() {
    int n;

    while (1) { 
        printf("정수를 입력하세요 (0 이하 입력 시 종료): ");

        if (scanf("%d", &n) != 1) {
            printf("잘못된 입력입니다. 정수를 입력해주세요.\n");
            while (getchar() != '\n');
            continue; 
        }

        if (print_buterfly(n) == 1) {
            break;
        }
    }

    return 0; 
}

 

 

 

🌟 프로그램 11, 트리 만들기

더보기
#include <stdio.h>

int print_tree(int n) {
    if (n <= 0) {
        printf("프로그램을 종료합니다.\n");
        return 1;
    }

    int i, j, k;

    for (i = 1; i <= 3; i++) {
        for (j = 1; j <= i + n; j++) {
            for (k = 1; k <= ( n + 4) - j; k++) {
                printf("  ");
            }
            for (k = 1; k <= (2 * j - 1); k++) {
                printf(" * ");
            }
            printf("\n");
        }
    }
    for (i = 1; i <= n ; i++) {
        for (j = 1; j <= n + 1.5; j++)
            printf("  ");
        for (j = 1; j <= n+2; j++)
            printf(" * ");
        printf("\n");
    }

    return 0;
    
}

int main() {
    int n;

    while (1) { 
        printf("정수를 입력하세요 (0 이하 입력 시 종료): ");

        if (scanf("%d", &n) != 1) {
            printf("잘못된 입력입니다. 정수를 입력해주세요.\n");
            while (getchar() != '\n');
            continue; 
        }

        if (print_tree(n) == 1) {
            break;
        }
    }

    return 0; 
}

 

 

 

🌟 프로그램 12, 튤립 만들기

더보기
// #include <stdio.h>

// int print_windmill() {
    
//     int i, j;

//     for (i = 1; i <= 4; i++) {
//             for (j = 0; j < (5 - i); j++) {
//                 printf(" ");
//             }
//             for (j = 0; j < (2 * i - 1); j++) {
//                 printf("*");
//             }
//             printf(" ");
//             for (j = 0; j < (5 - i ); j++) {
//                 printf(" ");
//             }
//             for (j = 0; j < (2 * i - 1); j++) {
//                 printf("*");
//             }
//             printf(" ");
//             for (j = 0; j < (5 - i); j++) {
//                 printf(" ");
//             }
//             for (j = 0; j < (2 * i - 1); j++) {
//                 printf("*");
//             }
//             printf("\n");
//         }

//     return 0;
// }

// int main() {

//     print_windmill();

//     return 0;
// }

#include <stdio.h>

int main() {
    int i, j;
    int height = 4;

    for (i = 1; i <= height; i++) {
        for (int tri = 0; tri < 3; tri++) {
            // 왼쪽 공백
            for (j = 0; j < height - i; j++) {
                printf(" ");
            }
            // 별 출력
            for (j = 0; j < 2 * i - 1; j++) {
                printf("*");
            }
            // 삼각형 사이 공백 (단, 마지막 삼각형 뒤에는 X)
            if (tri < 2) {
                for (j = 0; j < height - i + 2; j++) {
                    printf(" ");
                }
            }
        }
        printf("\n");
    }
    for(i = 1; i <= 26; i++) {
        printf("*");
    }
    printf("\n");
    
    
    for (i = 11; i >= 1; i--) {
            for (j = 0; j < (13 - i); j++) {
                printf(" ");
            }
            for (j = 0; j < (2 * i - 1); j++) {
                printf("*");
            }
            printf("\n");
        }
    for(i = 1; i <= 14; i++) {
        for (j = 0; j < 12; j++) {
                printf(" ");
            }
            printf("*");
            printf("\n");
        
        
    }
    return 0;
}

 

 

 

🌟 프로그램 13, 풍차 만들기

더보기
#include <stdio.h>

int print_windmill(int num) {
    if (num <= 0) {
        printf("프로그램을 종료합니다.\n");
        return 1;
    }

    for (int i = 0; i <= num; i++) {
        for (int j = 0; j <= i; j++) {
            printf("* ");
        }
        for (int j = 0; j < num - i; j++) {
            printf("  ");
        }
        for (int j = 0; j <= num - i; j++) {
            printf("* ");
        }
        printf("\n");
    }

    for (int i = 0; i <= num; i++) {
        for (int j = 0; j < (num - i); j++) {
            printf("  ");
        }
        for (int j = 0; j < i; j++) {
            printf("* ");
        }
        for (int j = 0; j < i; j++) {
            printf("  ");
        }
        for (int j = 0; j <= num - i; j++) {
            printf("* ");
        }
        printf("\n"); 
    }

    return 0;
}

int main() {
    int num;

    while (1) { 
        printf("정수를 입력하세요 (0 이하 입력 시 종료): ");

        if (scanf("%d", &num) != 1) {
            printf("잘못된 입력입니다. 정수를 입력해주세요.\n");
            while (getchar() != '\n');
            continue; 
        }

        if (print_windmill(num) == 1) {

            break;
        }
    }

    return 0; 
}

 

 

 

 

 

 

 

 

 

 

미리보기용

'C > Task' 카테고리의 다른 글

C언어 간단한 프로그램 2  (0) 2025.06.21
C언어 함수  (0) 2025.06.16
C언어 배열  (0) 2025.06.16
C언어 배열 정리  (0) 2025.06.15
06/12 반복구조  (0) 2025.06.12
'C/Task' 카테고리의 다른 글
  • C언어 간단한 프로그램 2
  • C언어 함수
  • C언어 배열
  • C언어 배열 정리
eull
eull
eull 님의 블로그 입니다.
  • eull
    eull 님의 블로그
    eull
  • 전체
    오늘
    어제
    • 개발 환경 (31)
      • MYSQL_Workbench (1)
        • setting (1)
      • Linux_Ubuntu (2)
        • Task (1)
        • Setting (1)
      • C (19)
        • Concept (4)
        • Task (8)
        • Project (1)
        • Study (5)
        • Setting (1)
      • C++ (1)
        • Study (0)
        • Concept (1)
      • Python (6)
        • Task (4)
        • Project (2)
      • 일상 (1)
      • Setting (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
eull
C언어 간단한 프로그램 1
상단으로

티스토리툴바