dpwns1234   4년 전


오버플로우 때문에 char 자료형으로 값을 입력받고 계산하려 하였는데 잘 안되네요ㅠㅠ

이 코드를 설명해보자면

입력받은 값이 문자형으로 기록되었으니까 문자형을 정수형으로 바꿔주기 위해서 - '0' 을 하였습니다.

그리고 원래대로 돌아온 값에서 10으로 나눈 나머지 값을 sum에 저장해주는 형식으로 코딩하였습니다.


다른 질문들을 보면서 이해하려고 해도 어렵구요ㅠㅠ

djm03178   4년 전

scanf("%s", a); 라고 문자열을 입력받으면 a[0]부터 a[n - 1]까지 문자열의 내용이 들어갑니다. a[n]은 계산하지 않아야 하고, a[0]는 계산되어야 합니다.

djm03178   4년 전

그리고 모든 자리에서 '0'을 빼고 계산해야 합니다. 각 문자는 '0'부터 '9'까지이므로, 각각에서 '0'을 빼줘야 원하는 정수값이 나옵니다. % 10은 하지 않아도 됩니다.

lokilo   4년 전

1)scanf("%s",a) 를 사용하여 했을 경우에는 문자열이 a[0]부터 a[n-1] 까지 n글자가 들어가게 될 겁니다. a[n]은 NULL문자가 들어가있게 됩니다.

위의 소스에서 최소한으로 수정하여 한다면 scanf("%s",a+1) 로 인덱스를 한 칸 밀어서 입력을 받으면 될 것 같습니다.


2) 각 문자에 대해서 - '0' 이 되어야 하는데 n번째 문자에 대해서만 적용이 되어 있습니다. n-1번째 문자부터는 아스키값으로 되어 계산이 진행됩니다.

3) a[n] = (a[n] -b) / 10; 의 의도를 모르겠습니다. 불필요한 문장입니다.

dpwns1234   4년 전

완전히 이해갔어요!!!! 항상 막히던 부분이였는데 감사합니다~!

댓글을 작성하려면 로그인해야 합니다.