pow.c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main(void)
{
int num, result; // 입력 변수 num, 결과값 저장 변수 result 선언
int cnt = 0; // 자릿수 count 할 변수 선언
double exp = 0; // pow 파라미터 변수 exp 선언
printf("숫자를 입력하시오 : ");
scanf("%d", &num); // scanf 사용하여 입력
while (num > 0)
{
result = num % 10; // %10 하여 나머지 (1의 자리) result에 저장
printf("%d 자리 숫자 : %d\n", (int)round(pow(10, exp)), result);
// pow 활용하여 1, 10, 100, 1000, 10000 자리 표현 (exp 가 증가하면서 제곱실행)
// 나머지 값 (result) 출력
num /= 10;
// 10으로 나누어 차수 내림 (소수점 이하 버림)
exp++;
// pow 지수 증가
cnt++;
// count 증가
}
printf("입력하신 숫자는 %d자리 입니다\n", cnt);
// 증가된 count 값 출력하여 몇 자리인지 출력
return 0;
}
C
복사
결과
RSP.c
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int com, usr=1; // 컴퓨터 값 com, 유저 값 usr 변수 선언
int result; // 대결 결과 값 저장할 result 선언
srand((unsigned int)time(NULL)); // 현재 시간을 시드로 사용하여 난수 생성기 초기화
/* 시간에는 - 가 없기 때문에 unsigned int 를 하지 않더라도 양수가 부여 되겠지만,
코드 안정성을 위해 선언
time의 파라미터를 NULL로 하여 현재 시간을 초단위로 반환
*/
com = rand() % 3; // com 에 0,1,2 중 랜덤하게 데이터 부여
printf("가위 바위 보 게임을 시작합니다...\n가위(1), 바위(2), 보(3) 중 선택 (숫자만 입력): ");
scanf("%d", &usr);
// 유저 데이터 입력
while (usr < 1 || usr > 3)
{
printf("입력을 잘못 하셨습니다 게임을 다시 시작합니다\n");
printf("가위 바위 보 게임을 시작합니다...\n가위(1), 바위(2), 보(3) 중 선택 (숫자만 입력): ");
scanf("%d", &usr);
}
switch (com - usr) // com - usr 로 대결 결과 판단, 값에 따라 결과 출력
{
case -2:
printf("졌습니다!");
break;
case -1:
printf("이겼습니다!");
break;
case 0:
printf("비겼습니다!");
break;
case 1:
printf("졌습니다!");
break;
case 2:
printf("이겼습니다!");
break;
}
return 0;
}
C
복사
결과
지뢰 찾기 게임 명세 및 분석
•
보드 생성
•
지뢰 무작위 배치 (플레이어는 알 수 없음)
•
지뢰 개수는 플레이어가 정할 수 있음
•
선택한 칸이 지뢰인 경우 게임 종료
•
선택한 칸이 지뢰가 아닌 경우, 주변에 몇 개의 지뢰가 있는지 표시
•
선택한 칸 주변에 지뢰가 없다면 해캉 칸 주변 (3 * 3) 의 코든 칸이 자동으로 열림
•
안전한 모든 칸을 선택한 경우 게임이 종료 (승리)