[도전해결] C 언어 입력 받은 두 수의 합계와 평균

  • 2 minutes to read

임의의 정수 두 개를 화면으로부터 입력 받아 합계평균을 구하는 프로그램을 작성하세요.


동영상 강의: C 언어_입력 받은 두 수의 합계와 평균 구하기


입력화면 설계

3 5

처리조건

  • 입력은 공백 한 칸을 기준으로 두 수를 입력 받는다.
  • 입력 숫자의 범위는 -2147483648부터 2147483647 사이의 정수다.
  • 평균은 소수점 첫 번째 자리까지 표시한다.

출력화면 설계

합계: 8
평균: 4.0

실행결과

3 5
합계: 8
평균: 4.0

힌트

큰 정수 데이터를 담을 수 있는 데이터 타입은 long long int를 사용하세요.





데브렉(http://www.devlec.com)





코드

// 입력받은 두 수의 합계와 평균 구하기 
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    long long int num1 = 0; // -21억~+21억 
    long long int num2 = 0; // -21억~+21억 
    long long int sum = 0; // +21억 + +21억 => long long int로 합계 저장 
    double avg = 0.0; // float 또는 double => 강의에서는 double 기준 사용

    int _ = scanf("%lld %lld", &num1, &num2); // %lld 서식 지정자 사용

    sum = num1 + num2; // 합계
    avg = sum / 2.0; // 평균

    printf("합계: %lld\n", sum);
    printf("평균: %.1lf\n", avg); // 소수점 첫 번째 자리까지 반올림해서 출력

    return 0;
}

실행

3 5
합계: 8
평균: 4.0

만약, 입력받는 정수의 최댓값(2147483647)끼리 더하게 되면 다음과 같이 출력됩니다.

2147483647 2147483647
합계: 4294967294
평균: 2147483647.0

설명

일반적인 환경에서는 입력 받은 수와 합계를 저장할 변수의 데이터 타입을 int로 설정하면 됩니다. 하지만, 처리조건에서 -21억부터 +21억 정도의 데이터를 입력받는 범위를 지정했을 때에는 오버플로우 또는 언더플로우 에러 발생 대비를 위해서 int 대신에 더 큰 정수를 담을 수 있는 long long int 타입을 사용했습니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com