게시판
검색 결과: 118
문의하신 코드는 삭제했습니다.
이런식으로 작성하였는데..어디가 잘못된건지를 모르겠어요 ㅠㅠ 공백일경우 추가하고 감소하는것을 어떤식으로 만들어야 하죠
(도장_관리자에 의해 편집됨 - 원문 제출일 2017년 1월 20일, 금요일, 오후 3:43 )
문의하신 코드는 삭제했습니다.
이렇게 작성해서 통과는 했습니다.. 공백을 " "이걸로잡아주니 안되는거였네요 ㅠㅠ scanf 공백입력도 빼먹었고.. ㅎㅎ 근데 while문의 첫번쨰 if문과 두번째 if문을 보시면 저것을 하나로 사용할 방법은 없을까요? || 연산을하자니.. 둘중하나가 공백일경우 실행되어버리니 해당공백에 값을 추가해주고 감소해주기가 애매한거같아서 좋은방법 없을까요?
(도장_관리자에 의해 편집됨 - 원문 제출일 2017년 1월 20일, 금요일, 오후 4:19 )
두 if 문 안에서 처리하는 내용이 다릅니다.
처리 내용이 같으면 합칠 수 있지만, 다를 때는 가능한가요?
감사합니다.
문의한 코드는 text1의 length를 구했는데,
공백을 제거한 text2의 length를 새로 구해야 할 겁니다.
디버거로 중단점을 지정하고 단계별로 선택하면서 변수의 값이 바뀌는 걸 관찰해보세요.
디버거는 UNIT 6, 중단점은 UNIT 6.1을 참조하세요.
이 문제는 복사하지 않고 푸는 방법이 더 풀기 쉬울 겁니다.
47.3의 회문과 비슷하게 하되
중첩 루프를 쓰고, 안쪽 루프에서 공백이 있으면 건너 뛰는 방식이 더 쉽습니다.
감사합니다.
//47.5
char text1[30];
char text2[30];
int length;
bool isPalindrome = true;
scanf("%[^\n]s", text1);
length = strlen(text1);
for (int i = 0, j = 0; i < length; i++, j++)
{
text2[i] = text1[j];
if (text1[j] == " ")
j++;
}
for (int i = 0; i < length / 2; i++)
{
if (text2[i] != text2[length - 1 - i])
{
isPalindrome = false;
break;
}
}
printf("%d\n", isPalindrome);
return 0;
이런 식으로 배열 2개를 만들어서 다른 한쪽에 공백을 없앤뒤에 검사를 하려했습니다.
근데 조건문으로 공백이 있으면 건너뛰려고 했는데 그러질 못하고 있습니다.
뭐가 문제인지 알 수 있을까요?
안녕하세요.
[47.5 심사문제: 공백이 포함된 회문 판별]에서 작성한 답안을 다른 컴파일러에서 테스트하면 정상적으로 동작하는 것 같은데, 심사통과를 하려고 제출하면 틀렸다고 하네요... ㅜㅜ
어느 부분이 잘못되었는지 조언 부탁드립니다.
-----------------------------------------------------------------------------------
문의하신 코드는 삭제했습니다.