문제

총 5개의 정수를 입력받아서 그 합을 출력하는 프로그램을 작성해 보자.

단, 0보다 큰 정수만을 입력받아야 한다.

0보다 작은 수는 무시한다.

(숫자는 5개를 입력받아서 그 합을 구한다.

만약 음의 값을 입력하였을 경우 양의 값을 입력 받을 때까지

계속 입력을 요청하도록 프로그램하세요)

(입력 값: 10, 21, -30, 10, 5, 45)

 

 

결과물

 

 

해설

소스에 적은 주석으로 하겠습니다.

 

 

소스

/*
만든이 : NoSyu
만든 날짜 : 2008-09-12
*/

#include <iostream> // iostream include

// using standard input/ouput
using std::cout;
using std::cin;
using std::endl;

// main function
int main(void)
{
    int i; // for문용 integer variable
    int sum = 0; // 총합
    int val; // input을 받는 변수

    // 총 다섯개의 정수를 받는다.
    for(i = 0 ; i < 5 ;)
    {
        cout << "숫자를 하나를 입력해주세요. : "; // print

        cin >> val; // 입력 받기

        // val이 0보다 크거나 같다면 총합에 더한다.
        if(val >= 0)
        {
            sum += val; // 총합 더하기
            i++; // 0보다 큰 값을 받았기에 i를 증가시킨다.
        }
        /* 정수가 아닐 때 출력을 넣고 싶지만, 넣지 못했습니다.
        찾아보니 ctype.h에 isdigit가 들어온 값이 정수임을 확인하는 듯싶습니다.
        또한, 정수가 아닌 값을 입력하니 무한루프를 돌아갑니다.
        이는 우리가 수업시간에 배우지 않았기에 간단히 하였습니다.
        후에 프로그램을 만들 때 쓰고자 여기에 주석과 출처를 적습니다.
http://www.cplusplus.com/reference/clibrary/cctype/
        else if(val < 0)
        {
            cout << "0보다 작은 수는 무시합니다.";
        }
        else
        {
            cout << "정수를 입력해주세요.";
        }
        */

        cout << endl; // newline
    }

    cout << "총합 : " << sum << endl; // 총합 출력

    return 0; // 종료~
}

크리에이티브 커먼즈 라이선스
Creative Commons License

글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.

트랙백 주소 :: http://nosyu.pe.kr/trackback/1684

댓글을 달아 주세요

[로그인][오픈아이디란?]