# C++ 기초 플러스 6판 (원제: C++ Primer Plus)의 프로그래밍 연습 문제를 나름대로 풀어본다.
Q1.
// q1.cpp -- 정수형 cm를 m와 cm 단위로 변환
#include <iostream>
int main()
{
using namespace std;
const int cm_per_m = 100;
int tall;
cout << "당신의 키를 cm 단위로 입력하십시오: ___\b\b\b";
cin >> tall;
int m = tall / cm_per_m;
int cm = tall % cm_per_m;
cout << tall << " cm는 " << m << " m, " << cm << " cm입니다." << endl;
return 0;
}
Q2.
// q2.cpp -- BMI 계산기
#include <iostream>
int main()
{
using namespace std;
const int ft_to_in = 12;
const float in_to_cm = 0.0254f;
const float lbs_to_kg = 2.2f;
cout << "키를 피트와 인치 단위로 입력하십시오: ";
int ft, in;
cin >> ft >> in;
cout << "체중을 파운드 단위로 입력하십시오: ";
int lbs;
cin >> lbs;
float m = in_to_cm * (in + ft * ft_to_in);
float kg = lbs / 2.2;
float bmi = kg / (m * m);
cout << "당신의 BMI는 " << bmi << " 입니다." << endl;
return 0;
}
Q3.
// q3.cpp -- 위도 변환기
#include <iostream>
int main()
{
using namespace std;
const int min_to_deg = 60;
const int sec_to_deg = 3600;
cout << "위도를 도, 분, 초 단위로 입력하시오: "<< endl;
cout << "먼저, 도각을 입력하시오: ";
float deg;
cin >> deg;
cout << "다음에, 분각을 입력하시오: ";
float min;
cin >> min;
cout << "끝으로, 초각을 입력하시오: ";
float sec;
cin >> sec;
float lat = deg + min / min_to_deg + sec / sec_to_deg;
cout << deg << "도, " << min << "분, " << sec << "초 = " << lat << "도" << endl;
return 0;
}
Q4.
// q4.cpp -- 초를 시간으로 변환
#include <iostream>
int main()
{
using namespace std;
const int sec_to_min = 60;
const int min_to_hr = 60;
const int hr_to_day = 24;
cout << "초 수를 입력하시오: ";
long sec;
cin >> sec;
int s = sec % sec_to_min;
int m = (sec / sec_to_min) % min_to_hr;
int h = ((sec / sec_to_min) / min_to_hr) % hr_to_day;
int d = ((sec / sec_to_min) / min_to_hr) / hr_to_day;
cout << sec << "초 = " << d << "일, " << h << "시간, " << m << "분, " << s << "초" << endl;
return 0;
}
Q5.
// q5.cpp -- 세계 인구에서 미국의 비중
#include <iostream>
int main()
{
using namespace std;
cout << "세계 인구수를 입력하시오: ";
long long pop;
cin >> pop;
cout << "미국의 인구수를 입력하시오: ";
long long usa;
cin >> usa;
double k = usa * 100.0 / pop;
cout << "세계 인구수에서 미국이 차지하는 비중은 " << k << "%이다." << endl;
return 0;
}
Q6.
// q6.cpp -- 100km당 사용한 기름의 리터 수
#include <iostream>
int main()
{
using namespace std;
cout << "주행한 거리를 km 단위로 입력하십시오: ";
int km;
cin >> km;
cout << "소비한 휘발유의 양을 리터 단위로 입력하십시오: ";
int l;
cin >> l;
float per = l * 100 / km;
cout << "100km 당 리터 수는 " << per << " 입니다." << endl;
return 0;
}
Q7.
// q7.cpp -- 휘발유 소비량 변환기
#include <iostream>
int main()
{
using namespace std;
const float km_to_mil = 62.14f;
const float gal_to_lit = 3.875f;
cout << "휘발유 소비량을 유럽 스타일(L/100km)로 입력하십시오: ";
float eu;
cin >> eu;
float us = km_to_mil * gal_to_lit / eu;
cout << "입력한 휘발유 소비량은 미국 스타일로는 " << us << " mpg입니다." << endl;
return 0;
}
'C++' 카테고리의 다른 글
[C++ 기초 플러스] Ch.02 C++ 시작하기 // 프로그래밍 연습 (0) | 2022.07.12 |
---|