-
C++ double 자료형 나머지연산(%)Knowledge/C++ 2019. 7. 5. 10:58반응형
BOJ 10430번문제 ( https://www.acmicpc.net/problem/10430 )를 풀면서 알게 된 것
부끄러운 고백이지만 나는 이 문제를 본 순간 나누기 연산과 나머지 연산을 혼동했다.
대충 보고 아 뭐 같은지 확인 하면 된다니 그냥 C를 더블로 선언해서 나눠보면 되겠네? 하고 쉽게 접근해서 코드 짜고 돌려보니
컴파일 에러가 났다.
그제서야 정신 부여잡고 다시 코드를 찬찬히 보면서 이것 저것 찾아보니
자바와 C++에서의 나머지 연산(%) 사용 조건이 서로 달라 발생한 문제였다.
예를 들어 아래와 같은 코드를 자바로 짜면 에러가 나지 않는다
123456789public static void main(String[] args) {double a = 10.0;double b = 3.0;System.out.println(a % b);// 1.0}cs 즉 자바에서는 double 형간의 나머지 연산 (% 사용) 이 가능하지만
1234567891011#include <iostream>using namespace std;int main(void){double a = 10.0;double b = 3.0;cout << a%b ;// 컴파일 에러}cs 같은 코드를 C++로 짜고 실행시키면 컴파일 에러가 발생한다
결론 1. C++에서 나머지 연산은 int, long 등 정수형 자료형끼리 수행할 때만 가능하다
결론 2. 건방떨며 방심하지 말고 항상 정신 똑디 챙기자
- 참고
C 언어에서 나머지 연산자 % 에 대하여
반응형'Knowledge > C++' 카테고리의 다른 글
C++ EOF 처리 방법 ( 백준 10951 A+B - 4 ) (6) 2019.07.11 문자열을 출력하고 줄을 바꿔주는 puts() 함수 (0) 2019.07.08 C++ 의 입력과 출력 ( cin / cout / scanf / printf ) (2) 2019.07.07 C++ 소수점 출력 범위 설정하기 (0) 2019.07.05 알고리즘 문제풀이 (PS)에 적합한 C++ 버전 (0) 2019.07.01