25.06.17 개발일지(C언어 간단한 프로그램 만들기 2)

2025. 11. 7. 09:34·6월 개발일지

 

25.06.17 개발일지

 

간단한 프로그램 함수로 구현하기 10

화살표 만들기

 

간단한 프로그램 함수로 구현하기 11

트리 만들기

#include <stdio.h>       // 11번 문제

int main(void)
{
    int i, j, k, l;

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

    return 0;
}
 

 

간단한 프로그램 함수로 구현하기 12

튤립 만들기

#include <stdio.h>       // 12번 문제

int main(void)
{
    int i, j, k, l, m, n, o;

    for (i=0; i<4; i++)
    {
        for (j=0; j<4-i; j++)
            printf("  ");
        for (k=0; k<(2*i)+1; k++)
            printf("* ");
        for (l=0; l<7-(2*i); l++)
            printf("  ");
        for (m=0; m<(2*i)+1; m++)
            printf("* ");
        for (n=0; n<7-(2*i); n++)
            printf("  ");
        for (o=0; o<(2*i)+1; o++)
            printf("* ");
        printf("\n");
    }
    for (i=0; i<13; i++)
    {
        for (j=0; j<i; j++)
            printf("  ");
        for (k=0; k<25-(2*i); k++)
            printf("* ");
        printf("\n");
    }
    for (i=0; i<13; i++)
    {
        for (j=0; j<12; j++)
            printf("  ");
        for (k=0; k<1; k++)
            printf("* ");
        printf("\n");
    }

    return 0;
}
 

 

간단한 프로그램 함수로 구현하기 13

풍차 만들기

#include <stdio.h>       // 13번 문제

int main(void)
{
    int i, j, k, l, m, n;
    n = 1;
    
    while (n > 0)
    {
        printf("바람개비 크기를 입력하세요>> ");
        scanf("%d", &n);

        for (i=0; i<n; i++)
        {
            for (j=0; j<i; j++)
                printf("  ");
            for (k=0; k<n-i; k++)
                printf("* ");
            for (l=0; l<(n-1)-i; l++)
                printf("  ");
            for (m=0; m<i+1; m++)
                printf("* ");
            printf("\n");
        }
        for (i=0; i<n; i++)
        {
            for (j=0; j<n-i; j++)
                printf("* ");
            for (k=0; k<i; k++)
                printf("  ");
            for (l=0; l<i+1; l++)
                printf("* ");
            for (m=0; m<(n-1)-i; m++)
                printf("  ");
            printf("\n");
        }
    }

    return 0;
}
 

 

간단한 프로그램 함수로 구현하기 14

가위바위보 게임 만들기

난수 발생 함수를 사용하여 컴퓨터와 대전이 가능한 가위바보 게임을 만들어 보세요.

#include <stdio.h>             // 가위바위보
#include <stdlib.h>
#include <time.h>
 
int player_number(int* p_num1)
{
    int num1;
    printf("가위(1), 바위(2), 보(3), 종료 및 결과 출력(0)\n");
    printf("숫자를 입력해주세요>> ");
    scanf("%d", &num1);
    *p_num1 = num1;

    return 0;
}

int computer_number(int* p_num2)
{
    int num2 = rand() % 3 + 1;
    *p_num2 = num2;

    return 0;
}

int rock_scissors_paper(int i, int j)
{
    int win, lose, draw;
    win = 0;
    lose = 0;
    draw = 0;

    if (i == 1 && j == 1)
    {
        printf("사용자는 가위를 냈습니다.\n");
        printf("컴퓨터는 가위를 냈습니다.\n");
        printf("무승부입니다.\n");
        printf("\n");
        draw = draw + 1;
    }

    if (i == 1 && j == 2)
    {
        printf("사용자는 가위를 냈습니다.\n");
        printf("컴퓨터는 바위를 냈습니다.\n");
        printf("졌습니다. 분발하세요.\n");
        printf("\n");
        lose = lose + 1;
    }

    if (i == 1 && j == 3)
    {
        printf("사용자는 가위를 냈습니다.\n");
        printf("컴퓨터는 보를 냈습니다.\n");
        printf("이겼습니다. 축하합니다.\n");
        printf("\n");
        win = win + 1;
    }

    if (i == 2 && j == 1)
    {
        printf("사용자는 바위를 냈습니다.\n");
        printf("컴퓨터는 가위를 냈습니다.\n");
        printf("이겼습니다. 축하합니다.\n");
        printf("\n");
        win = win + 1;
    }

    if (i == 2 && j == 2)
    {
        printf("사용자는 바위를 냈습니다.\n");
        printf("컴퓨터는 바위를 냈습니다.\n");
        printf("무승부입니다.\n");
        printf("\n");
        draw = draw + 1;
    }

    if (i == 2 && j == 3)
    {
        printf("사용자는 바위를 냈습니다.\n");
        printf("컴퓨터는 보를 냈습니다.\n");
        printf("졌습니다. 분발하세요.\n");
        printf("\n");
        lose = lose + 1;
    }

    if (i == 3 && j == 1)
    {
        printf("사용자는 보를 냈습니다.\n");
        printf("컴퓨터는 가위를 냈습니다.\n");
        printf("졌습니다. 분발하세요.\n");
        printf("\n");
        lose = lose + 1;
    }

    if (i == 3 && j == 2)
    {
        printf("사용자는 보를 냈습니다.\n");
        printf("컴퓨터는 바위를 냈습니다.\n");
        printf("이겼습니다. 축하합니다.\n");
        printf("\n");
        win = win + 1;
    }

    if (i == 3 && j == 3)
    {
        printf("사용자는 보를 냈습니다");
        printf("컴퓨터는 보를 냈습니다");
        printf("무승부입니다.");
        printf("\n");
        draw = draw + 1;
    }

    return 0;
}


int game_play()
{
    int win, lose, draw;
    printf("[종합 결과]\n");
    printf("> 승 : %d\n", win);
    printf("> 패 : %d\n", lose);
    printf("> 무 : %d\n", draw);
    
    return 0;
}

int main(void)
{
    int win, lose, draw, i, j;
    i = 1;
    win = 0;
    lose = 0;
    draw = 0;

    while (i > 0)
    {
        player_number(&i);

        computer_number(&j);

        rock_scissors_paper(i, j);
    }

    game_play();

    return 0;
}
 

 

: 아직 승무패 종합 결과 출력 부분은 구현 못했다..

함수를 안쓰고 하면 쉬울 거 같은 로직이지만

함수를 써서 하니까 포인터를 이용해서 변수값을 들고 오는게 복잡해져서

방법을 고민중이다..

 

 

간단한 프로그램 함수로 구현하기 15

 

슬롯머신 만들기

슬롯머신 게임 만들기: 마찬가지로 난수 발생 함수를 사용하여 3개의 숫자를 기반으로 하는 슬롯머신 프로그램을 만들어 보세요.

#include <stdio.h>             // 슬롯머신 만들기
#include <stdlib.h>
#include <time.h>

int computer_number(int* p_num1, int* p_num2, int* p_num3)
{
    int num1 = rand() % 9 + 1;
    *p_num1 = num1;

    int num2 = rand() % 9 + 1;
    *p_num2 = num2;

    int num3 = rand() % 9 + 1;
    *p_num3 = num3;

    return 0;
}

int power_ball(int i, int j, int k)
{
    
    int a;
    printf("배팅금액을 입력하세요>> \n");\
    scanf("%d", &a);

    if (i == 7 && j == 7 && k == 7)
    {
        printf("게임결과 : %d %d %d\n", i, j, k);
        printf("당신의 게임 등수는 1등입니다.\n");
        printf("당첨금액은 %d원 입니다.\n", a*5);
        printf("\n");
    }

    else if (i == j == k)
    {
        printf("게임결과 : %d %d %d\n", i, j, k);
        printf("당신의 게임 등수는 2등입니다.\n");
        printf("당첨금액은 %d원 입니다.\n", a*3);
        printf("\n");
    }

    else if (i == j && j != k)
    {
        printf("게임결과 : %d %d %d\n", i, j, k);
        printf("당신의 게임 등수는 3등입니다.\n");
        printf("당첨금액은 %d원 입니다.\n", a*2);
        printf("\n");
    }

    else if (i != j && j == k)
    {
        printf("게임결과 : %d %d %d\n", i, j, k);
        printf("당신의 게임 등수는 3등입니다.\n");
        printf("당첨금액은 %d원 입니다.\n", a*2);
        printf("\n");
    }

    else if (i == k && k != j)
    {
        printf("게임결과 : %d %d %d\n", i, j, k);
        printf("당신의 게임 등수는 3등입니다.\n");
        printf("당첨금액은 %d원 입니다.\n", a*2);
        printf("\n");
    }

    else
    {
        printf("게임결과 : %d %d %d\n", i, j, k);
        printf("당신의 게임 등수는 4등입니다.\n");
        printf("당첨금액은 0원 입니다.\n");
        printf("\n");
    }

    return 0;
}

int main(void)
{
    int i, j, k, a;

    a = 1;

    while (a > 0)
    {
        computer_number(&i, &j, &k);

        power_ball(i, j, k);

        printf("게임을 계속 하시겠습니까?  예<1> 아니오<0> : \n");
        scanf("%d", &a);
    }

    printf("게임이 종료되었습니다.\n");

    return 0;
}
 

 

간단한 프로그램 함수로 구현하기 16

달력만들기

 

년월을 (원하는 방식으로) 입력받아

해당 년도와 월을 출력하세요.

#include <stdio.h>             // 달력 만들기
#include <stdlib.h>
#include <time.h>

int main(void)
{
    int year, leap, month, sum, i, total, remain;
    leap = 1;  // 평년은 leap = 1, 윤년은 leap = 0

    printf("년도를 입력하세요 >> ");
    scanf("%d", &year);
    printf("월을 입력하세요 >> ");
    scanf("%d", &month);
    printf("입력하신 날짜는 %d년 %d월 입니다.\n", year, month);
    
    if (year % 4 == 0)
        leap = 0;
    if (year % 4 == 0 && year % 100 == 0)
        leap = 1;
    if (year % 4 == 0 && year % 100 == 0 && year % 400 == 0)
        leap = 0;

    int one_year[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    if (year == 0)
        one_year[1] = 29;

    sum = 0;  // 그 해 전달까지 일수의 합
    for (i = 0; i < month-1; i++)
    {
        sum = sum + one_year[i];
    }

    total = (year - 1)*365 + (year - 1)/4 - (year - 1)/100 + (year - 1)/400;
    // 전년도까지 일수의 합

    remain = (total + sum) % 7;  //나머지

    printf("----------------------------\n");
    printf(" Sun Mon Tue Wed Thu Fri Sat\n");
    printf("----------------------------\n");

    if (((remain+1) % 7)==1)
        printf("    ");
    if (((remain+1) % 7)==2)
        printf("        ");
    if (((remain+1) % 7)==3)
        printf("            ");
    if (((remain+1) % 7)==4)
        printf("                ");
    if (((remain+1) % 7)==5)
        printf("                    ");
    if (((remain+1) % 7)==6)
        printf("                        ");
    
    for (i = 1; i <= one_year[month - 1]; i++)
    {
        printf("%4d", i);
        if (((remain + i + 1) % 7) == 0)
            printf("\n");
    }
    printf("\n");

    return 0;
}
 

 

간단한 프로그램 함수로 구현하기 17

숫자 야구 만들기

#include <stdio.h>             // 숫자야구
#include <stdlib.h>
#include <time.h>

int main(void)
{
    int a, b ,c, d, e, f, i, strike, ball;
    printf("첫번째 숫자를 입력해주세요>> ");
    scanf("%d", &a);
    printf("두번째 숫자를 입력해주세요>> ");
    scanf("%d", &b);
    printf("세번째 숫자를 입력해주세요>> ");
    scanf("%d", &c);

    int random_number[3];

    int flag[10];          //랜덤 숫자 3개 중복없이 뽑기
    srand(time(NULL));
 
    for (i = 0; i < 3;)
    {
        int r = rand() % 10 + 1;
 
        if (flag[r-1])
            continue;
        random_number[i] = r-1;    //random_number 배열에 랜덤숫자 3개 저장
        
        flag[r-1] = 1;
        i++;
    }

    // for (int i = 0; i < 3; i++)
    // {
    //     printf("%d", random_number[i]);
    //     printf("\n");
    // }

    for (i = 0; i<9; i++)
    {
        strike = 0;
        ball = 0;
        if (a == random_number[0])
            strike = strike + 1;
        if (a == random_number[1] || a == random_number[2])
            ball = ball + 1;
        if (b == random_number[1])
            strike = strike + 1;
        if (b == random_number[0] || b == random_number[2])
            ball = ball + 1;
        if (c == random_number[2])
            strike = strike + 1;
        if (c == random_number[0] || c == random_number[1])
            ball = ball + 1;

        printf("\n");
        printf("[%d Round]\n", i+1);
        if (strike == 0 && ball == 0)
            printf("[OUT]\n");
        else if (strike == 3)
        {
            printf("Enter number 1 ~ 9 : %d\n", a);
            printf("Enter number 1 ~ 9 : %d\n", b);
            printf("Enter number 1 ~ 9 : %d\n", c);
            printf("정답입니다.\n");
            break;
        }
        else
        {
            printf("Strike: %d, Ball: %d\n", strike, ball);
        }
        printf("Enter number 1 ~ 9 : %d\n", a);
        printf("Enter number 1 ~ 9 : %d\n", b);
        printf("Enter number 1 ~ 9 : %d\n", c);

        printf("\n");
        printf("첫번째 숫자를 입력해주세요>> ");
        scanf("%d", &a);
        printf("두번째 숫자를 입력해주세요>> ");
        scanf("%d", &b);
        printf("세번째 숫자를 입력해주세요>> ");
        scanf("%d", &c);
    }

    return 0;
}
 

 

 

'6월 개발일지' 카테고리의 다른 글

25.06.19 개발일지(배열, 함수, 포인터 응용)  (0) 2025.11.07
25.06.18 개발일지 (C언어 간단한 프로그램 만들기)  (1) 2025.11.07
25.06.16 개발일지(C언어 간단한 프로그램 만들기 1)  (0) 2025.11.06
25.06.15 개발일지(C언어 배열 과제)  (0) 2025.11.06
25.06.14 개발일지(C언어 함수 과제)  (0) 2025.11.06
'6월 개발일지' 카테고리의 다른 글
  • 25.06.19 개발일지(배열, 함수, 포인터 응용)
  • 25.06.18 개발일지 (C언어 간단한 프로그램 만들기)
  • 25.06.16 개발일지(C언어 간단한 프로그램 만들기 1)
  • 25.06.15 개발일지(C언어 배열 과제)
dldmstj4378
dldmstj4378
dldmstj4378 님의 블로그 입니다.
  • dldmstj4378
    dldmstj4378 님의 블로그
    dldmstj4378
  • 전체
    오늘
    어제
    • 분류 전체보기 (136)
      • 비전 검사 (0)
      • 11월 개발일지 (6)
      • 10월 개발일지 (15)
      • 9월 개발일지 (26)
      • 8월 개발일지 (20)
      • 7월 개발일지 (26)
      • 6월 개발일지 (27)
      • 5월 개발일지 (16)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dldmstj4378
25.06.17 개발일지(C언어 간단한 프로그램 만들기 2)
상단으로

티스토리툴바