보관함
JUNGOL 기초다지기 04 디버깅
niamdank
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
}