redrosein   3년 전

정수로 받아서 출력하는건알겠지만 

저는 왠지 문자 배열로 입력받아서 각 자리수마다 따로 char변수로 집어넣어서

자리수를 나누고 싶어서 이렇게 만들어봤는데요 

vs에서 여러가지 세자리 숫자로 테스트한결과 잘나오는데 

왜 채점이 안될까요 혹시 cstdlib 쓰면 채점이 안되나요??

ikeelee7742   3년 전

21 ~3에서 문제가 발생하네요

btwo - '0' 이런식으로 수정해보세요

redrosein   3년 전

#include

#include

using namespace std;

int main()

{

char aone[4] = {};

char bone[4] = {};

cin >> aone;

cin >> bone;

int c, d , e, f,g;

c = atoi(aone) ; //입력 a

d = bone[0] - '0' ;

e = bone[1] - '0' ; //십의자리

f = bone[2] - '0' ; //일의자리

g = atoi(bone) ;

cout << c * f << endl;

cout << c * e << endl;

cout << c * d << endl;

cout << c * g;

return 0;

}

이게 찾아보니까 atoi 가 문자'열'을 정수로반환시켜주는거라서 단순히 char하나만 바꾸려고하면 쓰레기값이 포함이되어있네요 디버그해보니까

그래서 char to int 단순 변형하는걸로 바꿔서 했더니 잘됩니다.

감사합니다.

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