
문제 1
사용자로부터 총 5개의 정수를 입력 받아서, 그 합을 출력하는 프로그램을 작성해 보자. 단, 프로그램의 실행은 다음과 같이 이뤄져야 한다.
1번째 정수 입력: 1
2번째 정수 입력: 2
3번째 정수 입력: 3
4번째 정수 입력: 4
5번째 정수 입력: 5
합계: 15
이는 데이터의 입력에 사용되는 std::cin을 활용하면 된다. 그리고 for문을 활용해 1번째부터 5번째까지 입력받으면 된다.
#include <iostream>
int main(void) {
int num = 0;
int input = 0;
for(int i=0; i<5; i++) {
std::cout<<i+1<<"번째 정수 입력: ";
std::cin>>input;
num+=input;
}
std::cout<<"합계: "<<num<<std::endl;
return 0;
}
위는 교재 내의 답안이고, 나는 for문을 활용하지 않고 코드를 짰었다.
int main(void) {
int num1=0;
std::cout<< "1번째 정수 입력: ";
std::cin>>num1;
int num2=0;
std::cout<< "2번째 정수 입력: ";
std::cin>>num2;
int num3=0;
std::cout<< "3번째 정수 입력: ";
std::cin>>num3;
int num4=0;
std::cout<< "4번째 정수 입력: ";
std::cin>>num4;
int num5=0;
std::cout<< "5번째 정수 입력: ";
std::cin>>num5;
std::cout<<"합계: "<<num1+num2+num3+num4+num5<<std::endl;
return 0;
}
결과는 같으나 for문을 활용한 코드가 짧고 간결해 더 좋은 코드 같다.
문제 2
프로그램 사용자로부터 이름과 전화번호를 문자열의 형태로 입력 받아서, 입력 받은 데이터를 그대로 출력하는 프로그램을 작성해 보자.
이 또한 문제1과 같이 데이터의 입력에 사용되는 std::cin을 활용하면 된다. 단, 이름과 전화번호를 문자열의 형태로 입력 받아야 한다.
#include <iostream>
int main(void) {
char name[100];
std::cout<<"이름을 입력하세요: ";
std::cin>>name;
char phoneNum[100];
std::cout<<"전화번호를 입력하세요: ";
std::cin>>phoneNum;
std::cout<<"이름: " <<name<<std::endl;
std::cout<<"전화번호: " <<phoneNum<<std::endl;
return 0;
}
이름과 전화번호에 대한 변수를 할당해주고, 이를 입력받아서 출력해주는 형태이다.
문제 3
숫자를 하나 입력 받아서 그 숫자에 해당하는 구구단을 출력하는 프로그램을 작성해 보자. 예를 들어서 사용자가 5를 입력한다면 구구단에서 5단을 출력해야 한다.
지겹도록 한 예제이다. 구구단은 1~9까지 곱하는 형태를 취하는데, 특정 숫자 하나를 입력받아 이에 해당하는 구구단을 for문을 활용해 출력하면 되겠다.
#include <iostream>
int main(void) {
int num =0;
std::cout<<"숫자를 입력하세요: ";
std::cin>>num;
for(int i=1; i<10; i++) {
std::cout<<num<<"x"<<i<<"="<<num*i<<std::endl;
}
return 0;
}
문제 4
판매원들의 급여 계산 프로그램을 작성해 보자. 이 회사는 모든 판매원에게 매달 50만원의 기본 급여와 물품 판매 가격의 12%에 해당하는 돈을 지급한다. 예를 들어서 민수라는 친구의 이번 달 물품 판매 금액이 100만원이라면, 50+100x0.12=62, 따라서 62만원을 급여로 지급 받는다. 단, 아래의 실행의 예에서 보이듯이 이러한 급여의 계산은 -1이 입력될 때까지 계속 되어야 한다.
판매 금액을 만원 단위로 입력(-1 to end): 100
이번달 급여: 62만원
판매 금액을 만원 단위로 입력(-1 to end): 200
이번달 급여: 74만원
판매 금액을 만원 단위로 입력(-1 to end): -1
프로그램을 종료합니다.
민수의 물품 판매금액을 입력 받고, -1을 입력 받으면 프로그램을 종료하게끔 짜야한다. -1이 입력 되지 않는 한, 프로그램은 계속 실행되게끔 코드를 구성하면 되겠다.
#include <iostream>
int CalSalary(int sales) {
return (int)(50+sales*0.12);
}
int main(void) {
int sales;
while(1){
std::cout<<"판매 금액을 만원 단위로 입력(-1 to end): ";
std::cin>>sales;
if(sales==-1)
break;
std::cout<<"이번달 급여: ";
std::cout<<CalSalary(sales)<<"만원"<<std::endl;
}
std::cout<<"프로그램을 종료합니다."<<std::endl;
return 0;
}
위는 교재에서 제공하는 답안이다. 나는 또 다른 방식으로 코드를 짜보았다.
#include <iostream>
int main(void) {
int sales=0;
while(1){
std::cout<<"판매 금액을 만원 단위로 입력(-1 to end): ";
std::cin>>sales;
if(sales==-1) {
std::cout<<"프로그램을 종료합니다."<<std::endl;
break;
} else {
std::cout<<"이번달 급여: "<<50+sales*0.12<<"만원"<<std::endl;
}
}
return 0;
}
교재의 답안에는 급여를 계산하는 부분을 따로 함수로 작성해두었다. 내가 짠 코드는 함수로 따로 빼지 않고 main함수 내에 계산식을 직접 넣은 것이다.