-
JUNGOL 기초다지기 04 디버깅보관함 2019. 11. 17. 21:02
프로그래밍에서 가장 기초적인 내용을 다루는 기초 다지기입니다.
이번 포스팅은 기초 다지기 중 네 번째인 디버깅 문제를 풀어보도록 하겠습니다.
기초 내용인 만큼 다른 설명없이 문제와 코드만 간단하게 작성하도록 하겠습니다.
526 : 디버깅 - 자가진단1
#include <iostream> using namespace std; int main(void) { double var1, var2; // 두개의 값 입력받기 cin >> var1 >> var2; // 곱한 뒤 정수로 변환 int productFirst = static_cast<int>(var1 * var2); // 정수로 변환 후 곱 int castFirst = static_cast<int>(var1) * static_cast<int>(var2); // 결과 출력 cout << productFirst << ' ' << castFirst << endl; }
527 : 디버깅 - 자가진단2
#include <iostream> using namespace std; int main(void) { int var1, var2; cin >> var1 >> var2; // 정수 나누기 int divid = var1 / var2; // 실수 나누기 float dividCast = static_cast<float>(var1) / var2; // 소수점 이하 2자리 적용 cout.setf(ios::fixed); cout.precision(2); cout << divid << ' ' << dividCast << endl; }
116 : 디버깅 - 형성평가1
이 문제에는 따로 주석을 적으라는 내용은 없으나 기본적으로 디버깅에 속해있으므로 주석을 넣었습니다.
#include <iostream> using namespace std; int main(void) { int var1, var2, var3; cin >> var1 >> var2 >> var3; int sum = var1 + var2 + var3; // 소수점 표시를 위해 실수로 변환 float avg = static_cast<float>(sum) / 3; // 소수점 이하 1자리 출력 cout.setf(ios::fixed); cout.precision(1); cout << avg << endl; }
117 : 디버깅 - 형성평가2
#include <iostream> using namespace std; int main(void) { float var1, var2, var3; cin >> var1 >> var2 >> var3; // 정수부분의 합 int sum = static_cast<int>(var1) + static_cast<int>(var2) + static_cast<int>(var3); // 실수의 평균을 구한 뒤 정수로 int avg = static_cast<int>((var1 + var2 + var3) / 3); cout << "sum " << sum << endl; cout << "avg " << avg << endl; }
118 : 디버깅 - 형성평가3
이 문제는 해당 위치에 브레이크 포인트를 걸고 디버깅을 통해 실행하여 브레이킹 포인트에서 a의 값을 확인하라는 의도를 가진 문제입니다.
위와 같이 진행해 값을 확인하면 a의 값이 15인 것을 알 수 있습니다.
#include <iostream> using namespace std; int main(void) { int a = 5; a += 10; a = a - 1; cout << 15 << endl; }
119 : 디버깅 - 형성평가4
이 문제도 마찬가지로 디버깅을 통해 해당 위치의 값을 알아내는 문제입니다.
다만 C 스타일의 문제를 C++ 스타일로 변환시키고 에러가 뜨는 것을 제거하기 위해 define문을 추가한 점을 주목하시면 될 것 같습니다.
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <ctime> using namespace std; int main(void) { int a = 0; time_t now; tm tt; time(&now); tt = *localtime(&now); a = tt.tm_year; // a = 0 a += tt.tm_mon; // a = 119 a += tt.tm_mday; cout << 0 << ' ' << 119 << ' ' << 146 << endl; // a = 146 }