본문 바로가기
C/c언어 수업

array - enter ages of 5 ppl -> avg

by sj0020 2020. 8. 7.
#include <stdio.h>

int main()
{
	int ages[4];
	int tot = 0;
	double avg;
	int i;

	printf("네명의 발사이즈를 입력하세요 : ");
	for (i = 0; i < 4; i++)
	{
		scanf("%d", &ages[i]);
	}

	for (i = 0; i < 4; i++)
	{
		tot += ages[i];
	}

	avg = (double)tot / 4;

	printf("입력된 네명의 발사이즈 : ");
	for (i = 0; i < 4; i++)
	{
		printf("%d, ", ages[i]);
	}

	printf("\n네명의 평균 발사이즈는 %1.lf입니다\n", avg);

	return 0;
}

 

 

#include <stdio.h>

int main()
{
	int ages[5];
	int tot = 0;
	double avg;
	int i;

	printf("다섯명의 나이를 입력하세요 : ");
	for (i = 0; i < 5; i++)
	{
		scanf("%d", &ages[i]);
	}

	for (i = 0; i < 5; i++)
	{
		tot += ages[i];
	}

	avg = (double)tot / 5;

	printf("입력된 다섯명의 나이 : ");
	for (i = 0; i < 5; i++)
	{
		printf("%d", ages[i]);
	}

	printf("\n 다섯명의 평균 나이는 %1.lf입니다\n", avg);

	return 0;
}

Q

int tot = 0;

avg = (double)tot / 5;

tot은 나이 합이므로 무조건 int 값이 나올것임. 왜 double로 형변환?을해주는지 굳이???

-A

tot는 int 형으로 위에 선언이 되어있고 5도 int임. 그럼 답은 소수점이 있는 실수라도 int 값으로 밖에 표현이 안됨

하지만 avg 값은 실수형으로 나올 수도 있음 .그래서 tot앞에 double을 써서 tot값을 더블 형태로 바꿔주는것.. 안바꿔주면 avg 값이 정수로만 나옴

double은 8바이트 int는 4바이트라서 큰 그릇에서 작은그릇으로 넣는 거기땜에 짤림 ...

'C > c언어 수업' 카테고리의 다른 글

p452 도서관자리 2차원배열  (0) 2020.08.07
배열- 문자열 입력받고 거꾸로 프린트하기 strlen Hello -> OLLEH  (0) 2020.08.07
QQ p436 null 쓰레기값  (0) 2020.08.06
p432 null \0  (0) 2020.08.06
p416 배열  (0) 2020.08.06