문제 : 1초 동안 마이크로 소리강약을 체크하는 수를 h, 한 번 체크한 결과를 저장하는 비트 b, 좌우 등 소리를 저장할 트랙 개수인 채널 c, 녹음할 시간 s가 주어질 때, 필요한 저장 용량을 계산하는 프로그램을 작성해보자.
실제로 일반적인 CD 음질(44.1KHz, 16bit, 스테레오)로 1초 동안 저장하려면 44100 * 16 * 2 * 1 bit의 저장공간이 필요하다.
정답 :
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
long long int h, b, c, s;
double result;
scanf("%lld %lld %lld %lld", &h, &b, &c, &s);
result = h * b * c * s;
result = result / 8 / 1024 / 1024;
printf("%.1f MB", result);
return 0;
}
처음에 h, b, c, s를 int형으로 주었더니 오버플로우가 발생해 long long int로 변경해주었다.
그래서 scanf 입력시에도 서식지정자를 %lld로 지정해주어야 한다.
'Programming Languages > C' 카테고리의 다른 글
[P4C] CodeUp 1091 : [기초-종합] 수 나열하기3 (0) | 2021.02.25 |
---|---|
[P4C] CodeUp 1090 : [기초-종합] 수 나열하기2 (0) | 2021.02.25 |
[P4C] CodeUp 1082 : [기초-종합] 16진수 구구단? (0) | 2021.02.25 |
[P4C] CodeUp 1079 : [기초-종합] 원하는 문자가 입력될 때까지 반복 출력하기 (0) | 2021.02.25 |
[P4C] C언어 코딩 도장 : UNIT 32 ~ UNIT 33 (0) | 2021.02.21 |