#include<stdio.h>


int main()

{

    double operand, total;

    int count, retry;

    // 가장 좋은 코드는 의미없는 코드가 존재하지 않는 코드다.

    // for 문은 선입제어문이야.

    // 그 의미는 루프로 들어가기 전에 루프를 실행해야할지 조건을 판단하는 것이지.

    // 그런데 너는 처음엔 무조건 한 번은 입력을 받는다는걸 가정하고 있어.

    // 그렇다는건 for 를 쓸 필요 없이 do while 을 쓰거나, while(1)에서 break하는게 경제적일거라는걸 암시해.

    // for_retry 를 소거함으로서 retry와의 의미적 유사성이 주는 혼동이 사라졌지.

    // 의미를 구분하기 위해 for_ 를 붙인거 귀엽다.


    printf(" 평균 구하기 ");

    do

    {

        count = 0;

        total = 0;

        // 같은 타잎끼리만 연속대입하자. 그렇지 않으면 형변환 (double -> int) 이 발생해서 비싸.

        // 초기화를 루프 안에서 해 주면 끝부분의 if 문에 있던 초기화가 필요없지.

        while(1)

        {

            printf("%d 번째의 값을 입력해 주십시오(negative input to quit) ", count + 1);

            scanf("%lf", &operand);

            if(operand < 0)

                break;

            total += operand;

            count++;

        }

        if(!count) break; // 하나도 입력 안하면 걍 나가자

        getchar(); // scanf 에서 입력 받은 엔터 비우기

        printf("%d개의 숫자의 평균값은 %lf 입니다. ", count, total / count);

        printf("다시 하시겠습니까? (Y/n)");

        // 사소한 약속인데, 대문자로 쓴 Y 는 아무거나 입력하면 yes 로 받아들인다(default)의 의미

        retry = getchar();

    } while(retry != 'n' && retry != 'N');

    return 0;

}