챕터2. 실습 문제

2025. 3. 27. 23:05Programming Languages/C++


2.6 실습 문제

문제 1: 사용자 정보 입력 및 출력

사용자의 이름, 나이, 키(cm), 몸무게(kg)를 입력받아 BMI(체질량지수)를 계산하고 출력하는 프로그램을 작성하세요. BMI = 몸무게(kg) / (키(m) * 키(m))

#include <iostream>
#include <string>

int main() {
    std::string name;
    int age;
    double height, weight, bmi;
    
    // 사용자 정보 입력
    std::cout << "이름을 입력하세요: ";
    std::getline(std::cin, name);
    
    std::cout << "나이를 입력하세요: ";
    std::cin >> age;
    
    std::cout << "키(cm)를 입력하세요: ";
    std::cin >> height;
    
    std::cout << "몸무게(kg)를 입력하세요: ";
    std::cin >> weight;
    
    // BMI 계산 (키는 m 단위로 변환)
    bmi = weight / ((height / 100.0) * (height / 100.0));
    
    // 결과 출력
    std::cout << "\n===== 사용자 정보 =====\n";
    std::cout << "이름: " << name << std::endl;
    std::cout << "나이: " << age << "세" << std::endl;
    std::cout << "키: " << height << "cm" << std::endl;
    std::cout << "몸무게: " << weight << "kg" << std::endl;
    std::cout << "BMI: " << std::fixed << std::setprecision(2) << bmi << std::endl;
    
    return 0;
}

문제 2: 문자열 조작

사용자로부터 문장을 입력받아 단어 수, 문자 수를 계산하고, 모든 단어를 대문자로 변환하여 출력하는 프로그램을 작성하세요.

#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>  // transform 함수

int main() {
    std::string sentence;
    
    std::cout << "문장을 입력하세요: ";
    std::getline(std::cin, sentence);
    
    // 문자 수 계산
    int charCount = sentence.length();
    
    // 단어 수 계산
    std::stringstream ss(sentence);
    std::string word;
    int wordCount = 0;
    
    while (ss >> word) {
        wordCount++;
    }
    
    // 대문자로 변환
    std::string upperSentence = sentence;
    std::transform(upperSentence.begin(), upperSentence.end(), 
                   upperSentence.begin(), ::toupper);
    
    // 결과 출력
    std::cout << "입력한 문장: " << sentence << std::endl;
    std::cout << "문자 수: " << charCount << std::endl;
    std::cout << "단어 수: " << wordCount << std::endl;
    std::cout << "대문자 변환: " << upperSentence << std::endl;
    
    return 0;
}

 

'Programming Languages > C++' 카테고리의 다른 글

반복문  (0) 2025.03.27
제어문  (0) 2025.03.27
타입 별칭 및 auto 키워드  (0) 2025.03.27
문자열 다루기  (0) 2025.03.27
입출력  (0) 2025.03.27