정수들의 합과 평균 구하는 문제
조으다
질문 제목 : 정수들이 합과 평균 구하는 문제합과평균질문 내용 :
int i,j,x[10];
double sum,avg;
printf(정수들의 개수는?);
scanf(%d, &j);
i=0;
x[0]=j+1;
sum=0;
avg=0;
for(i=1;ij+1;i++){
printf(정수입력\n);
scanf(%d, &x[i]);
sum=sum+x[i];
}
avg=sum/j;
printf(합은 %f,sum);
printf(평균은 %f, avg);이렇게 써봤는데 되긴 되더라구요근데 avg는 평균이 소수가 나올수있으니 double 선언은 알겠는데
합인 sum 도 double 로만 선언해야되나요?
sum을 int로 선언하니까 안되더라구요
아마 avg=sum/j 여기에서 문제가 있는거같은데알려주시면 감사하겠습니다^^
-
해솔
sum을 int로 선언했는데 안 된다고 하셨는데, 혹시 int형의 sum을 출력할 때 printf의 서식도 %d로 하셨나요??
-
다가
캐스팅 이라는 것이 따로있었군요.. 첨보네요 감사합니다 ~!
-
내담
sum/j 에서 sum이 인트일 경우 반환값은 int 형을 가지게 됩니다.
즉 소수값 부분은 절삭되어 사라지게됩니다. 반올림 따위는 없습니다.
이 문제를 해결하기 위해 통상...
sum 이 int 형일경우 double 형태로 선 케스팅하게되고 이를 연산하여 사용합니다.
avg = (double)sum/j; -
사자자리
학생인데 오늘 강의때 이거때문에 애먹었네요..ㅜ
-
초코맛사탕
밑에 올린거처럼 sum을 int로 선언하고 실행하면
합(sum)은 정상출력되는데
평균(avg)는 만약 평균이 6.5 이면 6 만 나오네요 ㅠ (소수점들은 안나옴..) -
MinA
실행은 되는데 경고가 나는건가요?