if goto 문으로 코드가잘 안짜지네요...


요거 좀 알려주세요…

구체적으로 어느 부분에서 막히는지 알려주시면 상세한 답변을 드릴 수 있습니다.

팁을 드리자면, 먼저 순서도를 그려 만들고자 하는 프로그램의 구조를 구체화한 후, 이를 코드로 옮기는 것이 좋습니다.

#include <stdio.h>

int main() {
    // 변수 선언부
    // N  : 입력받은 정수의 갯수
    // sum: 입력받은 정수의 합
    int N = 0, sum = 0;

input:
    // 입력부
    // t1: 입력용 임시 변수
    int t1; scanf("%d", &t1);
    // 음수라면 출력
    // 여기서 바로 출력할 수도 있지만,
    // 따로 빼두면 보기도 편하고 수정하기도 편합니다.
    if(t1 < 0) goto print;
    // N과 sum을 갱신
    ++N; sum += t1;
    // 다시 입력
    goto input;

print:
    //출력부
    printf("Sum : %d\n", sum);
    // sum과 N 모두 정수이기 때문에
    // sum / N은 정수입니다.
    // sum을 float로 캐스팅해야
    // 실수로 된 결과를 얻을 수 있습니다.
    printf("Mean: %f\n", (float)sum / N);
    return 0;
}

짜보신 후, 비교해 보세요.

1 Like