Q1. 숫자를 입력받아 그 수의 절대값을 구하는 프로그램을 작성하시오.
<코드>
#include <iostream>
using namespace std;
int main()
{
int a;
int absol;
cout << "정수값을 입력하세요 -> ";
cin >> a;
absol = (a >= 0)? a : -a;
cout << "절대값 => " << absol << "\n";
}
<결과>
Q2. 문자 한 개를 입력받아 대문자면 소문자로 변환하고 나머지는 그대로 출력하는 프로그램을 작성하시오.
<코드>
#include <iostream>
using namespace std;
int main()
{
char chr;
cout << "문자를 입력하세요 -> ";
cin >> chr;
cout << "출력 결과 => " << (char)tolower(chr);
}
<결과>
<해설>
대문자↔소문자 변환
- 대문자와 소문자는 아스키코드로 "32"의 차이가 난다.
- ex) A = 65, a = 97
- 이것들은 이미 함수로 만들어져 있기 때문에 함수(toupper, tolower)를 사용하면 된다.
- toupper, tolower를 사용한 결과는 int형으로 나오기 때문에 char형으로 형변환을 해줘야 한다.
- 대문자 -> 소문자
- chr + = 32;
- toupper(chr);
- 소문자 -> 대문자
- chr -= 32;
- tolower(chr);
Q3. 각 과목의 점수를 입력받아 총점과 평균을 계산하여 출력하는 프로그램을 작성하시오.
<코드>
#include <iostream>
using namespace std;
int main()
{
int computer, math, c, eng;
int sum;
float avg;
cout << "컴퓨터 개론 점수 입력 -> ";
cin >> computer;
cout << "일반수학 점수 입력 -> ";
cin >> math;
cout << "c 언어 점수 입력 -> ";
cin >> c;
cout << "영어 점수 입력 -> ";
cin >> eng;
sum = computer + math + c + eng;
avg = (float)sum / 4;
cout << "총점 : " << sum << endl << "평균 : " << avg << endl;
}
<결과>
Q4. 원의 반지름을 입력받아 원의 둘레를 계산하는 프로그램을 작성하시오.
<코드>
#include <iostream>
using namespace std;
int main()
{
float round, radius;
cout << "반지름 입력 -> ";
cin >> radius;
round = 2 * 3.14 * radius;
cout << "원의 둘레 : " << round;
}
<결과>
Q5. 커피 테이크아웃 가게에 가서 카페 모카를 2잔 산 후 커피 값을 지불(10,000원)하고 영수증과 거스름돈을 받았다. 카페 모카의 가격이 3,500원이고 부가세가 10%라면 부가세와 손님에게 받을 상품의 총액과 거스름돈을 계산하여 출력하는 프로그램을 작성하시오.
#include <iostream>
using namespace std;
int main()
{
int price, num, pay, vat, total, change;
cout << "카페 모카 단가 입력 -> ";
cin >> price;
cout <<"수량 입력 -> ";
cin >> num;
cout << "지불한 돈 입력 -> ";
cin >> pay;
vat = (price * num) * 0.1;
cout << "부가세 -> " << vat << endl;
total = price * num + vat;
cout << "상품 총액 : " << total << endl;
change = pay - total;
cout << "거스름돈 : " << change << endl;
}
<결과>
Q6. 초 단위로 입력받은 시간에 대해서 몇 시간, 몇 분, 몇 초에 해당되는지 환산하는 프로그램을 작성하시오. 예를 들어, 3662초는 1시간 1분 2초다.
<코드>
#include <iostream>
using namespace std;
int main()
{
int sec, hour, minute, second ;
cout << "초를 입력하세요 -> ";
cin >> sec;
hour = sec / 3600;
minute = (sec % 3600) / 60;
second = (sec % 3600) % 60;
cout << sec << "초는 " << hour << "시간" << minute << "분" << second << "초이다." << endl;
}
<결과>
Q7. 알파벳 한 글자를 입력받아 1을 더한 후 이를 문자 형태로 출력하는 프로그램을 작성하시오. 예를 들어 A를 입력받았다면 B를, B를 입력받았다면 C를 출력한다.
<코드>
#include <iostream>
using namespace std;
int main()
{
char alpha;
int alphaa;
cout << "알파벳 한 글자를 입력하세요 -> ";
cin >> alpha;
alphaa = (int)alpha + 1;
cout << (char)alphaa;
}
<결과>
Q8. 10000보다 작은 정수가 주어졌을 때 이것을 천의 자리, 백의 자리, 십의 자리, 일의 자리로 분리해서 출력하는 프로그램을 작성하시오. 예를 들어, 3781이라면, 3, 7, 8, 1이 차례로 출력되는 프로그램이다.
<코드>
#include <iostream>
using namespace std;
int main()
{
int value, thousand, hundred, ten, one;
string str="error";
cout << "10000보다 작은 정수를 입력하세요 -> ";
cin >> value;
thousand = (value < 10000) ? (value / 1000) : value ;
hundred = (value < 10000) ? (value % 1000) / 100 : value ;
ten = (value < 10000) ? (value % 100) / 10 : value ;
one = (value < 10000) ? (value % 10) / 1 : value ;
cout << "정수값 : " << value << endl;
cout << "천의 자리 : " << thousand << endl;
cout << "백의 자리 : " << hundred << endl;
cout << "십의 자리 : " << ten << endl;
cout << "일의 자리 : " << one << endl;
cout << "정수값이 그대로 나오는 경우 다시 입력하세요." << endl;
}
<결과>
Q9. 섭씨=C 화씨=F라 가정하면 섭씨와 화씨 사이에는 다음과 같은 수식을 만족한다.
F= (9 / 5 ) * C = 32, C = (5 / 9)*(F-32)
섭씨를 화씨로 변환하는 프로그램을 작성하시오.
<코드>
#include <iostream>
using namespace std;
int main()
{
int C, F;
float change_C, change_F;
cout << "섭씨를 입력하세요 -> ";
cin >> C;
change_F = 9.0 / 5.0 * C + 32;
cout << "섭씨를 38(C)를 화씨로 변환하면 " << change_F << "(F) 가 된다." << "\n";
cout << "화씨를 입력하세요 -> ";
cin >> F;
change_C = (5.0 / 9.0) * (F - 32);
cout << "화씨를 150(F)를 섭씨로 변경하면 " << change_C << "(C)가 된다." << "\n";
}
<결과>
'C++ > 문제풀이' 카테고리의 다른 글
[C++] 함수 (2) | 2024.09.30 |
---|---|
[C++] for문, while문 연습문제(2) (0) | 2023.10.20 |
[C++] for문, while문 연습문제(1) (2) | 2023.10.05 |
[C++] if문 연습문제 (0) | 2023.10.02 |