열대urim 2018. 12. 11. 19:40

<설명>

최대 1000개의 다수의 정수가 입력으로 주어진다.

각각의 정수의 절댓값은 100000을 넘지 않는다.

모든 입력의 평균값을 출력하라.


<Input>

1000개 이하의 정수


<Output>

평균값, 절대오차는 10^-6까지 허용된다.


<소스코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
int main (void)
{
    int i=0;
    int sum=0;
    int cot=0;
    double  aver=0;
    
    while (scanf("%d",&i)!=EOF)
    {
        sum+=i;
        cot++;
    }
    
    aver = (double) sum / cot;
    printf("%lf",aver);
    
    return 0;
}
 

cs


<설명>
scanf는 평소엔 scan에 성공한 인자의 수를 return value로 내놓지만, EOF(End of File)일 때는 EOF를 내놓는다.
while loop가 한 번 돌 때, scan한 정수를 sum에 더해주고, cot를 증가시킨다.
루프를 다 돌고, 총합인 sum을 정수의 개수인 cot로 나눠주면 평균이 될 것이다.
이 때 명시적으로 aver 값을 (double)로 설정한다.

aver는 double 타입이므로 출력할 때 %lf를 사용한다.