
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41


본문내용
총 날짜의 합을 이용하여 주단위로 환산하여 1주가 지날 때 마다 줄 바꿈을 해주며 출력한다.
▷소스 부분
#include
void main()
{
int iMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int iYear,iMon,isLunar,iTotal,i,iWeek;
printf("년도와 월을입력 [YYYY MM] = "); //년도와 월을 입력받음.
scanf("%d%d",&iYear,&iMon);
iTotal = 0;
for(i=0;i
{
isLunar = (i%4==0 && i%100!=0 || i%400==0) ? 1 : 0;
//윤년이면 1을 입력. 아니면 0을 입력
iTotal = iTotal + 365 + isLunar; //입력년도 전까지의 총날짜 합 입력.
}
isLunar = (iYear%4==0 && iYear%100!=0 || iYear%400==0) ? 1 : 0;
//입력받은 년도가 윤년이면 1을 입력, 아니면 0을 입력
for(i=0;i
iTotal += iMonth[i];
//입력받은년도의 입력달까지의 날자를 총날자합에 더함.
if (iMon>2)
iTotal += isLunar; //입력받은 달이 2월 이후면 윤년변수를 더함.
printf("날자의 총합은 = %d\n",iTotal); //총 날짜 합 출력.
iWeek = (6+iTotal) % 7;
printf(" %4d 년 %2d 월 \n\n",iYear,iMon);
printf(" 일 월 화 수 목 금 토\n");
for(i=0;i
printf(" ");
for(i=0;i
{
if ((i+iWeek)%7==0) //1주가 지날 때마다 줄 바꿈.
printf("\n");
printf(" %2d",i+1); //날짜 출력.
}
printf("\n");
}
▷결과 화면
- 2008년 2월 // 2009년 2월 // 2009년 5월
## 과 제 14##
야구게임을 작성하시오.
▷프로그램 작성에 대한 설명.
- 9이하의 난수를 3개를 발생시켜 배열에 저장한다. 사용자로부터 3개의 수를 입력받아 입력받은 수의 위치가 값까지 맞으면 strike의 값을 1증가. 위치는 틀리지만 값이 맞으면 ball의 값 1증가. 10번의 기회동안 맞추면 정답 맞추지 못하면 실패라고 출력.
▷순 서 도
▷소스 부분
#include
#include
#include
void main()
{
int baseball[3]; //난수를 입력할 배열 선언
int count=1, i; //몇번째인지 입력할 변수와 for문에 이용할 변수 선언
int strike, ball, out; //스트라이스, 볼, 아웃을 입력할 변수 선언
int one, two, three; //사용자에게 입력받을 변수 선언
srand( (unsigned)time( NULL ) );
for(i=0;i<3;i++)
{
baseball[i] = rand() % 9; //9이하의 난수 생성후 배열에 저장
}
while(count!=11) //count가 11이 아니면 루프실행
{
printf("야구 게임을 시작합니다. (%d번째 기회)\n", count);
printf("3개의 숫자를 입력하세요:");
//사용자에게 3개의 숫자를 입력받음
scanf("%d %d %d", &one, &two, &three);
strike=0, ball=0, out=0; //매 기회마다 0으로 초기화 해줌.
if(one == baseball[0])
strike++; //one이 baseball[0]과 같으면 1스트라이크.
if(one==baseball[1]||one == baseball[2])
ball++; //one이 baseball[1]또는 baseball[2]와 같으면 1볼.
if(two == baseball[0]||two == baseball[2])
ball++; //two가 baseball[0]또는 baseball[2]와 같으면 1볼.
if(two == baseball[1])
strike++;//two가 baseball[1]과 같으면 1스트라이크.
if(three == baseball[0]||three == baseball[1])
ball++; //three가 baseball[0]또는 baseball[1]와 같으면 1볼.
if(three == baseball[2])
strike++;//three가 baseball[2]과 같으면 1스트라이크.
if((one != baseball[0])&&(one != baseball[1])&&(one != baseball[2]))
out++; //one과 같은 숫자가 배열내에 없다면 1아웃.
if((two != baseball[0])&&(two != baseball[1])&&(two != baseball[2]))
out++; //two와 같은 숫자가 배열내에 없다면 1아웃.
if((three!=baseball[0])&&(three!=baseball[1])&&(three!=baseball[2]))
out++; //three와 같은 숫자가 배열내에 없다면 1아웃.
if(strike==3) //3스트라이크라면
{
printf("정답입니다.\n");
printf("%d 번째 맞추셨습니다.\n", count);
break; //while문 탈출.
}
printf("%d 볼, %d 스트라이크, %d 아웃.", ball, strike, out);
printf("다시 시도하세요.\n\n");
count++; //시도횟수 증가.
}
if(count==11)
{
printf("정답은 %d %d %d.\n", baseball[0], baseball[1], baseball[2]);
printf("10번 동안 못마춘 당신은 바보!!\n");
}
}
▷결과 화면
- 10번안에 정답을 맞혔을 때의 결과 화면.
- 10번안에 정답을 맞히지 못하였을 경우의 결과화면.
▷소스 부분
#include
void main()
{
int iMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int iYear,iMon,isLunar,iTotal,i,iWeek;
printf("년도와 월을입력 [YYYY MM] = "); //년도와 월을 입력받음.
scanf("%d%d",&iYear,&iMon);
iTotal = 0;
for(i=0;i
isLunar = (i%4==0 && i%100!=0 || i%400==0) ? 1 : 0;
//윤년이면 1을 입력. 아니면 0을 입력
iTotal = iTotal + 365 + isLunar; //입력년도 전까지의 총날짜 합 입력.
}
isLunar = (iYear%4==0 && iYear%100!=0 || iYear%400==0) ? 1 : 0;
//입력받은 년도가 윤년이면 1을 입력, 아니면 0을 입력
for(i=0;i
//입력받은년도의 입력달까지의 날자를 총날자합에 더함.
if (iMon>2)
iTotal += isLunar; //입력받은 달이 2월 이후면 윤년변수를 더함.
printf("날자의 총합은 = %d\n",iTotal); //총 날짜 합 출력.
iWeek = (6+iTotal) % 7;
printf(" %4d 년 %2d 월 \n\n",iYear,iMon);
printf(" 일 월 화 수 목 금 토\n");
for(i=0;i
for(i=0;i
if ((i+iWeek)%7==0) //1주가 지날 때마다 줄 바꿈.
printf("\n");
printf(" %2d",i+1); //날짜 출력.
}
printf("\n");
}
▷결과 화면
- 2008년 2월 // 2009년 2월 // 2009년 5월
## 과 제 14##
야구게임을 작성하시오.
▷프로그램 작성에 대한 설명.
- 9이하의 난수를 3개를 발생시켜 배열에 저장한다. 사용자로부터 3개의 수를 입력받아 입력받은 수의 위치가 값까지 맞으면 strike의 값을 1증가. 위치는 틀리지만 값이 맞으면 ball의 값 1증가. 10번의 기회동안 맞추면 정답 맞추지 못하면 실패라고 출력.
▷순 서 도
▷소스 부분
#include
#include
#include
void main()
{
int baseball[3]; //난수를 입력할 배열 선언
int count=1, i; //몇번째인지 입력할 변수와 for문에 이용할 변수 선언
int strike, ball, out; //스트라이스, 볼, 아웃을 입력할 변수 선언
int one, two, three; //사용자에게 입력받을 변수 선언
srand( (unsigned)time( NULL ) );
for(i=0;i<3;i++)
{
baseball[i] = rand() % 9; //9이하의 난수 생성후 배열에 저장
}
while(count!=11) //count가 11이 아니면 루프실행
{
printf("야구 게임을 시작합니다. (%d번째 기회)\n", count);
printf("3개의 숫자를 입력하세요:");
//사용자에게 3개의 숫자를 입력받음
scanf("%d %d %d", &one, &two, &three);
strike=0, ball=0, out=0; //매 기회마다 0으로 초기화 해줌.
if(one == baseball[0])
strike++; //one이 baseball[0]과 같으면 1스트라이크.
if(one==baseball[1]||one == baseball[2])
ball++; //one이 baseball[1]또는 baseball[2]와 같으면 1볼.
if(two == baseball[0]||two == baseball[2])
ball++; //two가 baseball[0]또는 baseball[2]와 같으면 1볼.
if(two == baseball[1])
strike++;//two가 baseball[1]과 같으면 1스트라이크.
if(three == baseball[0]||three == baseball[1])
ball++; //three가 baseball[0]또는 baseball[1]와 같으면 1볼.
if(three == baseball[2])
strike++;//three가 baseball[2]과 같으면 1스트라이크.
if((one != baseball[0])&&(one != baseball[1])&&(one != baseball[2]))
out++; //one과 같은 숫자가 배열내에 없다면 1아웃.
if((two != baseball[0])&&(two != baseball[1])&&(two != baseball[2]))
out++; //two와 같은 숫자가 배열내에 없다면 1아웃.
if((three!=baseball[0])&&(three!=baseball[1])&&(three!=baseball[2]))
out++; //three와 같은 숫자가 배열내에 없다면 1아웃.
if(strike==3) //3스트라이크라면
{
printf("정답입니다.\n");
printf("%d 번째 맞추셨습니다.\n", count);
break; //while문 탈출.
}
printf("%d 볼, %d 스트라이크, %d 아웃.", ball, strike, out);
printf("다시 시도하세요.\n\n");
count++; //시도횟수 증가.
}
if(count==11)
{
printf("정답은 %d %d %d.\n", baseball[0], baseball[1], baseball[2]);
printf("10번 동안 못마춘 당신은 바보!!\n");
}
}
▷결과 화면
- 10번안에 정답을 맞혔을 때의 결과 화면.
- 10번안에 정답을 맞히지 못하였을 경우의 결과화면.
소개글