코딩 팁 3

[C/C++] if절에서의 float 자료형 비교 오류

문제발견 "BOJ 25206번: 너의 평점은" 문제를 풀다가 이상한 점을 발견했다. 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net score_float[i] 값에 0.1의 값이 들어있음에도 불구하고 31번줄의 if절이 실행되지 않았다. 나와 같은 문제를 풀다가 여기까지 왔으면 몰라도 그렇지 않다면 문제를 읽고 코드를 이해하기는 너무 귀찮으므로 발생한 문제를 간략한 코드로 나타내면 다음과 같다. #include using namespace std; int main(){ float a = 0.1; if(a == 0.1..

코딩 팁 2023.06.08

[C/C++] 실수형 자료 소수점 지정해서 출력하기

개요 코딩을 하다보면 실수형 자료의 소수점을 지정해서 출력해야할 때가 있을 것이다. 오늘은 C와 C++에서 어떻게 소수점을 지정해서 출력을 하는지 알아보자. C #include int main(){ float a = 0.1234567; printf("%f\n" , a);// 그냥 출력할 때 printf("%.1lf\n" , a);// 소수점 1번째 자리까지 printf("%.2lf\n" , a);// 소수점 2번째 자리까지 printf("%.3lf\n" , a);// 소수점 3번째 자리까지 printf("%.7lf\n" , a);// 소수점 7번째 자리까지 printf("\n"); return 0; } printf("%.nlf", a) 형식에서 n에 출력하고자하는 소수점의 자릿수를 넣어주면 된다. (참고..

코딩 팁 2023.06.08

[오류] 세그멘테이션 오류 (core dumped) 해결 방법

오류 발생 구름ide에서 병합정렬 알고리즘을 구현하다가 실행하려고 보니 다음과 같은 오류가 나타났다. 다른 플랫폼에서 코드를 실행했더니 정상적으로 작동하는 것을 확인했다. 코드에서 작동하지 않는 부분이 있는지 확인하기 위해 cout을 난사했더니 다음과 같은 부분을 발견했다. 해결 22번 줄에서 정수형 자료 i 가 제대로 선언되지 않은 것이 문제였다. 다음과 같이 수정하니까 코드가 제대로 작동하기 시작했다. 어라 애초에 저렇게 변수를 선언하면 안되나? 싶어서 간단한 코드를 만들어 돌려봤더니... #include using namespace std; int main(){ int i, j = 14; cout

코딩 팁 2023.06.05