Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 주가예측
- SNS
- 개인프로젝트
- 자바독학
- 사물인터넷
- Python
- 코스닥
- 자바정리
- 모의 주식
- 자바
- 개발
- 풀스택프레임워크
- 코딩테스트
- 이웃한 칸
- 백준
- 코딩독학
- 코테
- 코딩
- 프로그램
- Reflex
- java정리
- Project
- backend
- 프로그래밍
- java
- 빅데이터
- frontend
- 프로그래머스
- C++
- 개발자
Archives
- Today
- Total
Creative Code
bowling.c(볼링 점수 계산) 본문
#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS
int main(void) {
int board[11][4] = { 0 }; // 각 프레임에서 친 점수를 기록한 배열
int index = 0; // board1배열의 인덱스
int total = 0; // 총 점수
for (int i = 1; i <= 10; i++) {
for (int j = 1; j <= 3; j++) {
printf("%d 번째 프레임의 %d 번째 투구 점수 : ", i, j); // 점수 입력받기
scanf("%d", &board[i][j]);
//스트라이크 처리
if (index >= 2 && j == 1 && board[i - 1][1] == 10 && board[i - 2][1] == 10) { // (10점) , (10점), (a)점 인경우
total += 20 + board[i][j];
printf("%d 프레임의 총 점수는 %d 입니다.\n", i - 2, total);
}
else if (index >= 2 && j == 2 && board[i - 1][1] == 10) { // (10점),(a,b)점인 경우
total += 10 + board[i][1] + board[i][2];
printf("%d 프레임의 총 점수는 %d 입니다.\n", i - 1, total);
}
else if (j == 3 && board[10][1] == 10) { // 10프레임 1번째 투구가 10점인 경우
total += board[10][1] + board[10][2] + board[10][3];
printf("%d 프레임의 총 점수는 %d 입니다.\n", i, total);
}
//스페어 처리
if (index >= 2 && j == 1 && board[i - 1][1] != 10 && board[i - 1][1] + board[i - 1][2] == 10) { // (a,10-a),(b)점 인경우
total += 10 + board[i][1];
printf("%d 프레임의 총 점수는 %d 입니다.\n", i - 1, total);
}
else if (j == 3 && board[10][1] + board[10][2] == 10) { // 10프레임 2번째 투구에서 스페어 처리 되었을경우
total += 10 + board[10][3];
printf("%d 프레임의 총 점수는 %d 입니다.\n", i, total);
}
// 모든 프레임에서 첫번째 투구와 두번째 투구의 합이 9보다 작거나 같은경우 (스페어나 스트라이크 처리가 안되었을 경우)
if (j == 2 && board[i][1] + board[i][2] < 10) {
total += board[i][1] + board[i][2];
printf("%d 프레임의 총 점수는 %d 입니다.\n", i, total);
}
index++;
if (i <= 9 && j == 2) { // 9프레임까지는 최대 2번까지만 투구 할 수 있음
break;
}
else if (i <= 9 && j == 1 && board[i][j] == 10) { // 9프레임까지는 첫번째 투구에서 스트라이크를 치면 다음 프레임으로 넘어감
break;
}
else if (i == 10 && j == 2 && (board[i][1] + board[i][2] < 10)) { //10프레임에서는 첫번째 투구와 두번째 투구를 던졌을 때 스페어나 스트라이크를 쳐야 세번째 투구 기회를 얻을 수 있음
break;
}
}
}
return 0;
}
'C Programming' 카테고리의 다른 글
main.c (랜덤함수 라이브러리 생성) (0) | 2023.08.04 |
---|---|
swap3.c(전역변수 사용) (0) | 2023.08.04 |
sumMatrix2.c(2차원 배열의 포인터) (0) | 2023.08.03 |
findMax2.c(포인터로 배열입력받아 최댓값 찾기) (0) | 2023.08.03 |
sumArray2.c(배열을 포인터로 받기) (0) | 2023.08.03 |