• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

안녕하세요 48번 질문

21.03.30 16:36 작성 조회수 139

0

안녕하세요

48번 문제에서 중간에 평균 구할 때

for (i = 0; i < 9; i++) {
    sum = 0;
    for (j = 0; j < 9; j++) {
        scanf("%d", &a[i][j]);
        sum += a[i][j];
    }
    printf("%d\n", ((sum / 9.0) + 0.5));
}

ave 변수에 따로 넣지 않고 바로 이렇게 출력해봤는데, 왜 이상하게 출력되는 걸까요?

avg = (sum / 9.0) + 0.5
printf("%d ", avg);

이렇게 하는 것과의 차이점이 뭔가요?

답변 1

답변을 작성해보세요.

2

codesweaver님의 프로필

codesweaver

2021.03.30

전체 코드를 올려주시면 좀 더 도움이 될것 같습니다. 아래는 제가 나머지 코드를 예측해서 작성한 것인데  질문주신 것 두개는 출력상의 차이는 없습니다. 

.

그런데 평균 출력시 printf("%d", avg); 로 하면 컴파일 오류가 나실것 같습니다. (컴파일러에 따라 그냥 허용할수도 있습니다만) avg는 실수값이므로 %f 로 받는게 적절합니다.

.