최대단위 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;
}
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
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; }
- 결과
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력