본문 바로가기
문제 풀이/기본개념과 원리로 배우는C++

개념과 핵심원리로 배우는 C++ 프로그래밍 4장 프로그래밍 문제

by 준그래머 2023. 10. 31.
반응형

1. if~else를 이용하여 입력받은 정수의 짝/홀수 여부를 출력하는 프로그램을 작성하시오.

#include <iostream>
using namespace std;
int main(void){
 int num;
 
 while(true){
  
  cout << "정수를 입력하세요(0을 입력하면 종료) : ";
  cin >> num; 
  
  if(num == 0){
   cout << "종료합니다.";
   break; 
  }
  
  if(num%2==0){
   cout << num << "은 짝수입니다." << endl << endl; 
  }
  else if(num%2==1){
   cout << num << "은 홀수입니다." << endl << endl;
  }
 }
}

 

2. 받아쓰기는 10문제로 이루어지고 각각 10점씩 100점 만점이다. 받아쓰기 점수를 입력 받은 후 등급을 출력하는 프로그램을 switch 문만 이용하여 작성하시오!

#include <iostream>
using namespace std;
int main (void){
 int score;
 while(true){
  cout << "받아쓰기 점수를 입력하세요(1을 입력하면 종료) : ";
  cin >> score;
  if(score == 1){
   cout << "종료합니다.";
   break;
  }
  switch(score){
   case 100:
    cout << "A" << endl;
    break;
   case 90:
    cout << "B" << endl;
    break;
   case 80:
    cout << "B" << endl;
    break;
   case 70:
    cout << "C" << endl;
    break;
   case 60:
    cout << "C" << endl;
    break;
   case 50:
    cout << "C" << endl;
    break;
   case 40:
    cout << "D" << endl;
    break;
   case 30:
    cout << "D" << endl;
    break;
   case 20:
    cout << "D" << endl;
    break;
   case 10:
    cout << "D" << endl;
    break;
   case 0:
    cout << "F" << endl;
    break;
   default :
    cout << "잘못된 입력입니다.";
    break;
   }
  }
 return 0;
}

 

3. do ~ while문을 이용하여 1부터 10까지 합계를 구하는 프로그램을 작성하시오.

#include <iostream>
using namespace std;
int main(void){
 int i = 1;
 int sum = 0;
 do{
  sum += i;
  i++;
 }while(i <= 10);
 cout << sum << endl;
 return 0;
}

 

4. for문 안에 while문을 포함시켜서 구구단을 출력하는 프로그램을 작성하시오.

#include <iostream>
#include <iomanip>
using namespace std;
int main (void){
 
 for(int i = 1; i < 10; i++){
  int j = 1;
  while(j < 10){
   cout << i << " * " << j << " = " << setw(2) << (i*j) << "  ";
   j++; 
  }
  cout << endl << endl;
 }
 return 0;
}

 

5. for, if, continue를 사용하여 1 ~ 100까지 짝수만 출력하는 프로그램을 작성하시오.

#include <iostream>
#include <iomanip>
using namespace std;
int main (void){
 
 for(int i = 1; i <= 100; i++){
  if(i % 2 == 1){
   continue;
  }
  else
   cout << setw(4) << i ;
  if(i % 10 == 0){
   cout << endl;
  }
 }
 return 0;
}

 

6. 다음은 수학능력시험 표준 점수의 상위 비율에 따른 등급표이다. 이 표를 기반으로 다음 프로그램을 작성하시오.

1등급 0% ~ 4%
2등급 4% ~ 11%
3등급 11% ~ 23%
4등급 23% ~ 40%
5등급 40% ~ 60%
6등급 60% ~ 77%
7등급 77% ~ 89%
8등급 89% ~ 96%
9등급 96% ~ 100%

 

(1) 수학능력 시험 상위 비율을 입력받은 후 등급을 출력하는 프로그램을 if ~ else ~ if문만을 이용하여 작성하시오.

수능성적 상위 비율을 입력하세요! 18.2 3등급입니다.

#include <iostream>
using namespace std;
int main(void){
 
 double per;
 cout << "수능 성적 상위 비율을 입력하세요!" << endl;
 cin >> per;
 if(0 <= per && per < 4) cout << "1등급입니다." << endl;
 else if(4 <= per && per < 11) cout << "2등급입니다." << endl;
 else if(11 <= per && per < 23) cout << "3등급입니다." << endl;
 else if(23 <= per && per <= 40) cout << "4등급입니다." << endl;
 else if(40 <= per && per <= 60) cout << "5등급입니다." << endl;
 else if(60 <= per && per <= 77) cout << "6등급입니다." << endl;
 else if(77 <= per && per <= 89) cout << "7등급입니다." << endl;
 else if(89 <= per && per <= 96) cout << "8등급입니다." << endl;
 else cout << "9등급입니다." << endl; 
 return 0;
}

(2) 표준 등급을 입력할 경우 100명당 평균 몇 등인지를 출력하는 프로그램을 작성하시오.

표준 등급을 입력하세요! 4 평균 31.5등입니다.

#include <iostream>
using namespace std;
int main(void){
 int grade;
 cout << "표준등급을 입력하세요!" << endl;
 cin >> grade;
 
 switch(grade){
  case 1:
   cout << "평균 " << 4.0/2 <<"등입니다." << endl;
   break;
  case 2:
   cout << "평균 " << (4.0+11)/2 <<"등입니다." << endl;
   break;
  case 3:
   cout << "평균 " << (11.0+23)/2 <<"등입니다." << endl;
   break;
  case 4:
   cout << "평균 " << (23.0+40)/2 <<"등입니다." << endl;
   break;
  case 5:
   cout << "평균 " << (40.0+60)/2 <<"등입니다." << endl;
   break;
  case 6:
   cout << "평균 " << (60.0+77)/2 <<"등입니다." << endl;
   break;
  case 7:
   cout << "평균 " << (77.0+89)/2 <<"등입니다." << endl;
   break;
  case 8:
   cout << "평균 " << (89.0+96)/2 <<"등입니다." << endl;
   break;
  case 9:
   cout << "평균 " << (96.0+100)/2 <<"등입니다." << endl;
   break;
  default :
   cout << "잘못된 입력입니다." << endl;
   break;
 }
 return 0;
}

풀이는 생략하겠습니다.

반응형