[도전해결] C 언어 입력 받은 두 수의 합계와 평균
추천 자료: ASP.NET Core 인증 및 권한 부여
임의의 정수 두 개를 화면으로부터 입력 받아 합계
와 평균
을 구하는 프로그램을 작성하세요.
동영상 강의: C 언어_입력 받은 두 수의 합계와 평균 구하기
입력화면 설계
3 5
처리조건
- 입력은 공백 한 칸을 기준으로 두 수를 입력 받는다.
- 입력 숫자의 범위는 -2147483648부터 2147483647 사이의 정수다.
- 평균은 소수점 첫 번째 자리까지 표시한다.
출력화면 설계
합계: 8
평균: 4.0
실행결과
3 5
합계: 8
평균: 4.0
힌트
큰 정수 데이터를 담을 수 있는 데이터 타입은 long long int
를 사용하세요.
코드
// 입력받은 두 수의 합계와 평균 구하기
#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 타입을 사용했습니다.
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!