리메이크 중/C,C++ 실습 중심

C(&C++) 실습 3. A+B (표준 입출력 함수 : 입력)

라이피 (Lypi) 2021. 6. 2. 19:00
반응형

 



0. 문제

ⅰ. 두 정수 A와 B를 입력받아, A+B를 출력하시오.

■ 조건 : 0 < (A or B) < 10

■ 예제 입력 : 1 2 

■ 예제 출력 : 3

ⅱ. 두 정수 A와 B를 입력받아, A-B의 절댓값을 출력하시오.

■ 조건 : 0 < (A or B) < 10

■ 예제 입력 : 2 6 

■ 예제 출력 : 4


Ⅰ. 두 정수 A와 B를 입력받아, A+B를 출력하시오.

ⅰ. scanf() (입력자가 조건을 지킬 것이라 가정)

■ C언어에서 입력을 받는 가장 대표적인 함수는 scanf()이다.

■ scanf("//서식지정 문자열//",&변수[,&변수...]);의 형태로 쓴다.

■ 서식지정 문자열에는 입력받을 변수의 데이터형에 대한 서식지정자를 공백이나 쉼표 등으로 구분해서 쓴다.

■ 서식지정자 사이의 구분은 주로 공백으로 하나, 다른 기호로 할 수도 있다.

■ 입력이 끝났음은 줄바꿈기호(엔터키)를 입력해서 한다.

■ 입력 서식에 어긋나게 입력될 경우 입력을 받지 못하니 주의해야한다.

#include <stdio.h>

int main()
{
    int a, b;
    scanf("%d %d",&a, &b);
    
    printf("%d",a+b);

    return 0;
}

ⅱ. scanf() (입력자가 조건을 지키도록 강제)

■ 언제든 입력자는 잘못 입력할 가능성이 있으므로 입력 전 안내와 안전장치를 해두는 경우가 많다.

#include <stdio.h>

int main()
{
    int a = 0, b = 0;
    
    while(1) {
        printf("10미만의 양수 2개를 공백으로 구분해서 입력하세요.\n");
        scanf("%d %d",&a, &b);
        if(a>0 && a<10 && b>0 && b<10) {
            break;
        }
    }
    
    printf("%d",a+b);

    return 0;
}

ⅲ. cin (입력자가 조건을 지킬 것이라 가정)

■ C++에서는 cin이라는 입력 객체를 제공한다.

■ cin은 서식문자열 없이 바로 입력받을 수 있다.

■ cin으로 2개 이상의 변수의 입력을 받을 경우 공백문자나 줄바꿈문자를 입력함으로 구분한다.

■ 입력 완료 또한 줄바꿈 문자로 입력받는데, 변수에 대한 입력값이 없을 경우에는 입력 완료로 처리되지 않는다.

#include <iostream>
using namespace std;

int main()
{
    int a, b;
    
    cin >> a >> b;
    
    cout << a+b;

    return 0;
}

ⅳ. cin (입력자가 조건을 지키도록 강제)

■ 언제든 입력자는 잘못 입력할 가능성이 있으므로 입력 전 안내와 안전장치를 해두는 경우가 많다.

#include <iostream>
using namespace std;

int main()
{
    int a = 0, b = 0;
    
    while(1) {
        cout << "2개의 10미만의 양수를 입력하세요. \n";
        cin >> a >> b;
        if(a>0 && a<10 && b>0 && b<10) {
            break;
        }
    }
    
    cout << a+b;

    return 0;
}

Ⅱ. 두 정수 A와 B를 입력받아, A-B의 절대값을 출력하시오.

ⅰ. C스타일 풀이 (abs함수 사용)

■ 절대값을 출력하기 위해서 abs 함수를 사용했다.

■ abs함수는 stdlib.h 헤더파일에 정의되어 있다.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a, b;
    
    scanf("%d %d", &a, &b);
    printf("%d", abs(a-b));
    
    return 0;
}

ⅱ. C++스타일 풀이 (삼항 연산자 사용)

■ 절대값을 출력하게 하기 위해서 a>b일 때와 아닐 때, 두 경우로 나눴다.

■ if를 사용할 수도 있지만 간단한 양자택일이므로 삼항 연산자를 활용했다.

■ a>b의 반대는 a<=b인 경우밖에 없다.

#include <iostream>
using namespace std;

int main()
{
    int a, b;
    
    cin >> a >> b;
    cout << (a>b?a-b:b-a);
    
    return 0;
}

 

 

반응형