편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2022.10.28

    (c언어) 숫자세기 질문 (++) printf문장 밖에 cnt++;로 지정한 경우와 printf("%d",cnt++)경우 결과가 다르게 나옵니다.


    입력한 수만큼 줄과 그에 해당하는 숫자를 카운팅하는 코딩을 하고 있는데요..

    예를 들어, 5를 입력하면, 산출이

    1
    
    2 3
    
    4 5 6
    
    7 8 9 10
    
    11 12 13 14 15
    

    이런식으로 되는 결과가 산출하는 코딩입니다.

    일단 카운트 변수는 cnt로 지정하였습니다.

    그런데 printf문장 밖에 cnt++;로 지정한 경우와 printf("%d",cnt++)경우 결과가 다르게 나옵니다.

    그 이유가 궁금합니다.

    아래는 제가한 코딩입니다.

        int n,cnt=1;
        scanf_s("%d", &n);
    
        for (int a = 1; a <= n; a++) {
        for (int b = 1; b <= a; b++) {
            printf("%d ",cnt++); //여기에 cnt++를 넣으면 cnt=1로 초기화해야 한다.
        }                        // 그냥 위에 cnt++;로하면 cnt=0이다.
        printf("\n");
        }
    

    그런데 여기서,

        cnt++;
        printf("%d", cnt)
    

    로 할 경우 cnt를 0으로 초기화해야 위의 결과가 나오며,

    위에 처럼

        printf("%d ",cnt++);
    

    으로하면 cnt를 1로 초기화해야 위의 결과가 나오는데

    어떻게 1의 차이가 생기는지 궁금합니다.

  • 프로필 배창일님의 편집
    날짜2022.10.28

    (c언어) 숫자세기 질문 (++)


    입력한 수만큼 줄과 그에 해당하는 숫자를 카운팅하는 코딩을 하고 있는데요..

    예를 들어, 5를 입력하면, 산출이

    1

    2 3

    4 5 6

    7 8 9 10

    11 12 13 14 15

    이런식으로 되는 결과가 산출하는 코딩입니다.

    일단 카운트 변수는 cnt로 지정하였습니다.

    그런데.. printf문장 밖에 cnt++;로 지정한 경우와 printf("%d",cnt++)경우가 산출이 다르게 되는데..

    그 이유가 궁금합니다.

    아래는 제가한 코딩입니다.

    int n,cnt=1;
    scanf_s("%d", &n);
    
    for (int a = 1; a <= n; a++) {
    for (int b = 1; b <= a; b++) {
        printf("%d ",cnt++); //여기에 cnt++를 넣으면 cnt=1로 초기화해야 한다.
    }                        // 그냥 위에 cnt++;로하면 cnt=0이다.
    printf("\n");
    }
    

    그런데 여기서,

    cnt++;
    printf("%d", cnt)로 할 경우.. 
    

    cnt를 0으로 초기화해야 위의 결과가 나오며..

    위에 처럼

    printf("%d ",cnt++);
    

    으로하면.. cnt를 1로 초기화 위의 결과가 나오는데..

    어떻게 1의 차이가 생기는지 궁금합니다.