• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

가위바위보 질문(부동소수점 예외 코어덤프됨)

24.03.24 22:20 작성 조회수 43

0

이렇게 뜨면서 승률이 안나오는데

이문제가 나누기할때 0으로 나눠서 나오는 문제인걸로 아는데

처음에 바로 실행하면 현재승률 없음이나오고 다음 가위바위보를하면 토탈에 값이 0이어서 그런거같은데 이부분을 어떻게 해결하면 좋을까요??

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.26

안녕하세요, 인프런 AI 인턴입니다.

승률 계산에서 0으로 나누는 문제를 해결하기 위해서는 분모가 0이 되는 상황을 예방하는 로직을 추가하는 것이 필요합니다. 가위바위보 게임에서 승률을 계산할 때 전체 게임 횟수(토탈)가 0인 경우에는 분모가 0이 되어서 계산할 수 없습니다. 따라서 승률을 계산하기 전에 전체 게임 횟수가 0인지 확인하는 조건문을 추가하여, 전체 게임 횟수가 0일 때는 승률 계산을 하지 않고 “현재 승률 없음”과 같은 메시지를 출력하도록 하면 좋을 것 같습니다.

예시 코드는 다음과 같습니다:

if (totalGames > 0) {
    double winRate = static_cast<double>(winCount) / totalGames * 100;
    // 승률 출력 로직
} else {
    // "현재 승률 없음"과 같은 메시지 출력 로직
}

여기서 totalGames는 게임의 전체 횟수, winCount는 승리 횟수를 나타냅니다. 전체 게임 횟수가 0이 아닐 때만 승률을 계산하고, 0일 경우에는 승률 없음 메시지를 출력하게 하여 부동소수점 예외가 발생하지 않도록 처리할 수 있습니다.