책 내용 질문하기
2권 19년 1회 기출문제 55번
도서
2020 시나공 SUMMARY 사무자동화산업기사 필기
페이지
11
조회수
323
작성일
2020-05-30
작성자
탈퇴*원
첨부파일

void main(void)

{

int n = 0, t = 0;

do

{

  t+=n;

printf("n=%2d, t=%2d/n", n++, t);

}

while(n<10);

}

 

1. 해당 문제에서 t+=n; 은 t=t+n 값으로 n의 값을 t에 누적하라고 나와있는데 이 부분이 이해가 안갑니다..

2. n++ : n=n+1 이므로 먼저 변수를 명령문에 사용한 다음 변수의 값을 증가시키는 즉, n의 값을 출력한 후 1을 증가시킨다는 부분이 이해가 안갑니다!

답변
2020-06-01 09:32:51

안녕하세요. 길벗 수험서 운영팀입니다.

 

초기값은 int n = 0, t = 0입니다. 

첫 번째 t += n은 t = t+n의 의미이므로 t = 0+0 = 0입니다.

첫 번째 결과값은 t=0, n=0입니다.

printf(“n=%2d, t=%2d\n”, n++, t);에서 n++은 n = n+1의 의미로 n = 0+1 = 1이 됩니다. 

그래서 t=0, n=1이 됩니다.

while(n<10)은 n이 10이하 즉, 0부터 9까지 위의 식을 반복하면 됩니다. 

 

두 번째 t = t+n은 t = 0이고, n = 1이므로 t = 0+1 = 1입니다.

그래서  t = 1, n = 1입니다.

n++로 인해 n = 2가 되므로,  t = 1, n = 2입니다. 

 

세 번째 t = t+n은 t = 1이고, n = 2이므로 t = 1+2 = 3입니다.

그래서  t = 3, n = 2입니다.

n++로 인해 n = 3이 되므로,  t = 3, n = 3입니다.

 

이런식으로 n=10일 때까지 t = t+n을 반복해 주면 다음 표와 같은 것입니다.


 

행복한 하루되세요.^^ 

  • 관리자
    2020-06-01 09:32:51

    안녕하세요. 길벗 수험서 운영팀입니다.

     

    초기값은 int n = 0, t = 0입니다. 

    첫 번째 t += n은 t = t+n의 의미이므로 t = 0+0 = 0입니다.

    첫 번째 결과값은 t=0, n=0입니다.

    printf(“n=%2d, t=%2d\n”, n++, t);에서 n++은 n = n+1의 의미로 n = 0+1 = 1이 됩니다. 

    그래서 t=0, n=1이 됩니다.

    while(n<10)은 n이 10이하 즉, 0부터 9까지 위의 식을 반복하면 됩니다. 

     

    두 번째 t = t+n은 t = 0이고, n = 1이므로 t = 0+1 = 1입니다.

    그래서  t = 1, n = 1입니다.

    n++로 인해 n = 2가 되므로,  t = 1, n = 2입니다. 

     

    세 번째 t = t+n은 t = 1이고, n = 2이므로 t = 1+2 = 3입니다.

    그래서  t = 3, n = 2입니다.

    n++로 인해 n = 3이 되므로,  t = 3, n = 3입니다.

     

    이런식으로 n=10일 때까지 t = t+n을 반복해 주면 다음 표와 같은 것입니다.


     

    행복한 하루되세요.^^ 

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.