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 |