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

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

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

1. 알파벳 'C'부터 'K'까지 몇 개의 알파벳이 있는지 계산하는 프로그램을 작성하시오.

#include <iostream>
using namespace std;

int main(void){
    char C = 'C';
    char K = 'K';
    cout << "K : " << (int)K << "   C : " << C << endl;
    cout << K - C + 1 << "개" << endl;
}

(int)를 사용하여 K와 C의 int형으로 변환하면 얼마인지 보여드렸습니다.

그 사이 값에 C부터 K까지의 알파벳이 들어있습니다. 때문에 둘을 빼준 후 1을 더하면 개수가 나오게 됩니다.

 

2. Name 문자 배열을 정의한 후에 자신의 영문 이름을 배열 요소에 하나씩 입력한 후에 출력하는 프로그램을 작성하시오.

#include <iostream>
using namespace std;

int main(void){
     char arr[20];
     int i = 0;
     while (true){
             cout << "영문이름을 한글자 씩 입력하세요(종료하려면 1을 입력하세요)"  << endl;
             if(arr[i] == '1'){
                     break;
             }
             i++;
      }
      cout << endl << "당신의 이름은 ";
      for(int j = 0; j < i; j++){
              cout << arr[j];
      }
}

while을 통해 영문이름을 한 글자씩 배열에 입력받고 for문을 통해 출력하였습니다.

 

3. 다음은 분자, 분모를 입력받은 후 나눗셈 결과를 출력하는 프로그램이다. Divide 함수를 완성하시오.

#include <iostream>
using namespace std;
double Divide(double a, double b){
      return a/b;
}

int main(void){
     int a,b;
     cout << "분자를 입력하세요." << endl;
     cin >> a;
     cout << "분모를 입력하세요." << endl;
     cin >> b;
     if( b != 0){
           auto r = Divide(a,b);
           cout << r << endl;
     }
     else{
            cout << "0은 분모가 될 수 없습니다." << endl;    
     }
}

설명 생략

 

4. 다음은 알파벳 하나를 입력받은 후, 대소문자 여부를 출력하는 프로그램이다. CheckResult함수를 완성하시오.

#include <iostream>
using namespace std;
char b_arr [] = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
char s_arr [] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int flag = 2;  
void CheckResult(char c); 
int main(void){
    char c;
    while(true){
            flag = 2;  // 영문자가 아님으로 초기화
            cout << "알파벳 하나를 입력하세요.(종료하시려면 0을 입력하세요)" << endl;
            cin >> c;
            if(c == '0'){
                   cout << "종료합니다.";
                   break;
            }
           CheckResult(c);
     }
}
void CheckResult(char c){
    for(int i = 0; i < 26; i++){
            if(s_arr[i] == c){
                    flag = 1;  // 소문자 
            }
    }
    for(int i = 0; i < 26; i++){
            if(b_arr[i] == c){
                     flag = 0;  // 대문자
            }
    }
    if(flag == 1){
            cout << "소문자입니다.\\n" << endl;
    }
   else if (flag == 0){
            cout << "대문자입니다.\\n" << endl;
    } 
   else{
             cout << "알파벳이 아닙니다.\\n" << endl;
   }
}

설명 생략

반응형