해결된 질문
작성
·
143
0
이렇게 뜨면서 승률이 안나오는데
이문제가 나누기할때 0으로 나눠서 나오는 문제인걸로 아는데
처음에 바로 실행하면 현재승률 없음이나오고 다음 가위바위보를하면 토탈에 값이 0이어서 그런거같은데 이부분을 어떻게 해결하면 좋을까요??
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
승률 계산에서 0으로 나누는 문제를 해결하기 위해서는 분모가 0이 되는 상황을 예방하는 로직을 추가하는 것이 필요합니다. 가위바위보 게임에서 승률을 계산할 때 전체 게임 횟수(토탈)가 0인 경우에는 분모가 0이 되어서 계산할 수 없습니다. 따라서 승률을 계산하기 전에 전체 게임 횟수가 0인지 확인하는 조건문을 추가하여, 전체 게임 횟수가 0일 때는 승률 계산을 하지 않고 “현재 승률 없음”과 같은 메시지를 출력하도록 하면 좋을 것 같습니다.
예시 코드는 다음과 같습니다:
if (totalGames > 0) {
double winRate = static_cast<double>(winCount) / totalGames * 100;
// 승률 출력 로직
} else {
// "현재 승률 없음"과 같은 메시지 출력 로직
}
여기서 totalGames
는 게임의 전체 횟수, winCount
는 승리 횟수를 나타냅니다. 전체 게임 횟수가 0이 아닐 때만 승률을 계산하고, 0일 경우에는 승률 없음 메시지를 출력하게 하여 부동소수점 예외가 발생하지 않도록 처리할 수 있습니다.