최대단위 10000의 수를 입력받아서 숫자를 역순으로 출력하는 예를들어서 43651 을 입력하면 15634를 출력하게 하는 프로그램입니다. 빌드 오류가 뜹니다.

조회수 666회
#include <stdio.h>
#define _CRT_SECURE_NO_WARNINGS
int main() {
    int num1;
    int num2;
    scanf("%d\n", num1); //43651

    num2 = num1 % 10;
    num1 = num1 - num1 % 10;
    printf("%d\n", num2);

    num2 = num1 % 100;
    num1 = num1 - num1 % 100;
    printf("%d\n", num2 / 10);

    num2 = num1 % 1000;
    num1 = num1 - num1 % 1000;
    printf("%d\n", num2 / 100);

    num2 = num1 % 10000;
    num1 = num1 - num1 % 10000;
    printf("%d\n", num2 / 1000);

    printf("%d\n", num2 / 10000);

    return 0;
}
  • 질문할 때 오류도 같이 넣어서 질문하세요. nowp 2021.3.9 14:08

1 답변

  • 3 군데가 틀렸습니다.

    우선 아래의 전처리기를 맨위줄로 빼셔야 됩니다.

    #define _CRT_SECURE_NO_WARNINGS

    다음으로 scanf 함수의 사용법이 틀렸습니다. 아래와 같이 수정해 주세요. scanf 함수에서 아주 특수한 경우에는 포맷지정 부분에 질문의 코드처럼 \n을 넣을 수도 있겠지만, 지금은 일반적인 입력을 받는 상황이므로 넣지 마세요. 무조건 넣지 않는다라고 기억해도 좋을 정도로 넣지 않는 것을 우선 습관 들이세요. 그리고 두번째 인수에는 변수의 주소값을 넣어줘야 하므로 반드시 변수이름 앞에 &가 있어야 합니다.

    scanf("%d", &num1);

    마지막으로 잘못 된곳은 마지막 printf 함수입니다. 아래와 같이 수정하세요.

    printf("%d\n", num1 / 10000);

    아래 코드와 결과 참고하세요.

    • 코드
    #define _CRT_SECURE_NO_WARNINGS
    
    #include <stdio.h>
    
    int main() {
        int num1;
        int num2;
        scanf("%d", &num1); //43651
    
        num2 = num1 % 10;
        num1 = num1 - num1 % 10;
        printf("%d\n", num2);
    
        num2 = num1 % 100;
        num1 = num1 - num1 % 100;
        printf("%d\n", num2 / 10);
    
        num2 = num1 % 1000;
        num1 = num1 - num1 % 1000;
        printf("%d\n", num2 / 100);
    
        num2 = num1 % 10000;
        num1 = num1 - num1 % 10000;
        printf("%d\n", num2 / 1000);
    
        printf("%d\n", num1 / 10000);
    
        return 0;
    }
    
    • 결과

    이미지

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 감사합니다!!!!!! 책에서는 짚어주지 않은걸 잘 짚어주시네요 ㅠㅠㅠ 감사드려요ㅠ ㅠㅠ 알 수 없는 사용자 2021.3.10 16:52

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)