Maris 코딩
  • [백준] 1000 - A + B
    2024년 12월 11일 17시 31분 36초에 업로드 된 글입니다.
    작성자: Le마리

     

     

     

     

    문제

     

    두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

     

     

     

     

    입력

     

    첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

     

     

     

    #include <iostream>	// 입력과 출력을 위한 헤더 파일
    
    int main()
    {
    	int A;
    	int B;
    	std::cin >> A, B;
    
    	std::cout << A + B << std::endl;
    
    }

     

     

     

     

    💡왜 코드가 실행이 안될까?

    std::cin >> A,B; 이 부분은 >> 연산자와 쉼표 연산자가 섞여 있다.

      C++에서 쉼표(,)는 순서를 나열하는 연산자로 동작한다. 

      따라서 B는 cin으로 값을 입력받는 게 아니다!

    ⦁ 이 코드는 이렇게 해석된다.

        1. std::cin >> A  :  A에 입력값을 받아라.

        2. , B : 쉼표 뒤의 B는 그냥 아무 값도 안 들어간 상태로 넘어가라.

     

    결과적으로, A는 값을 잘 입력받지만 B는 초기화되지 않고 그대로 남아 있기 때문에, 컴파일러가 "B가 초기화되지 않았다" 는 경고를 내는 것이다.

     

     

     

     

     

    올바른 코드

     

    #include <iostream>	// 입력과 출력을 위한 헤더 파일
    
    int main()
    {
    	int A;
    	int B;
    	std::cin >> A >> B;
    
    	std::cout << A + B << std::endl;
    
    }

     

     

     

    == 결과 ==

     

     

     

     

     

     

     

     

     

     


     

     

    정답은 아니지만,

     

     

     

    ▶️ 번외 : 조건이 있을 경우 ⥤ if문 이용

         ( 0 < A, B < 10 )

     

    #include <iostream>	// 입력과 출력을 위한 헤더 파일
    
    int main()
    {
    	int A;
    	int B;
    	std::cin >> A >> B;
    
    	if (A > 0 && B < 10)
    	{
    		std::cout << A + B << std::endl;
    	}
    	else
    	{
    		std::cout << "범위 내 숫자를 입력해주세요 (1 ~ 10)" << std::endl;
    	}
    
    }

     

     

    == 결과 ==

     

     

     

     

     

     

     

    ▶️ 번외 : 조건에서 끝나는 게 아니라 틀리면 다시 입력받고 싶을 경우 ⥤ while문 함께 이용

     

     

    #include <iostream>	// 입력과 출력을 위한 헤더 파일
    
    int main()
    {
    	int A, B;
    
    	while (true)
    	{
    		std::cin >> A >> B;
    
    		if (A > 0 && B < 10)
    		{
    			std::cout << A + B << std::endl;
    			break;	// 조건을 만족하면 반복문 탈출
    		}
    		else
    		{
    			std::cout << "잘못된 입력입니다. 1 ~ 10 사이 숫자를 입력해주세요." << std::endl;
    		}
    	}
    
    }

     

     

    == 결과 ==

     

     

     

     

     

    '문풀 > 백준' 카테고리의 다른 글

    [백준] 10430 - 나머지  (0) 2025.01.14
    [백준] 10869 - 사직연산  (0) 2024.12.11
    [백준] 1008 - A/B  (0) 2024.12.11
    [백준] 10998 - A x B  (0) 2024.12.11
    [백준] 1001 - A - B  (0) 2024.12.11
    댓글