게시판

검색 결과: 118

, 정 Cel님이 작성
 
안녕하세요 저도 이렇게 코드 작성했는데 

혹시 해결하셨나요??

, 도장_ 관리자님이 작성
 

DEV C++ 사용자의 문의가 많아서 게시판 상단에 DEV C++을 사용하지 말라는 내용을 고정해두었습니다.

해당 공지 사항도 읽어보세요.


, Lee HyeongWook님이 작성
 
char a[31];
char b[31];

DEV C++에선 에러나 워닝없이 잘 돌아가는거 같은데 왜 퀴즈에선 틀렸다고 나오나요??

(도장_ 관리자님이 수정함 - 원문 제출일: 2020년 6월 12일, 금요일, 오후 10:36)

, 도장_ 관리자님이 작성
 

Visual Studio에서 테스트 케이스를 넣으면 0이 출력됩니다.

1이 출력되게 해야 합니다.

반복문에서 strlen을 쓰면 안 됩니다.

데이터의 값이 변경될 수 있기 때문에 strlen을 반복문에서 쓰면 안 되고,

반복할 때마다 strlen으로 문자열의 길이를 센다면 비효율적인 프로그램이 될 것입니다.

반복문 내부에서 데이터를 변경할 경우 버그가 생길 가능성이 높고,

한 번 반복할 때마다 문자열의 길이를 세니까 비효율적입니다.

문자열이나 배열은 초기화해야 합니다.

a는 scanf에서 입력 받으니 마지막에 자동으로 \0 널문자가 붙으니까 문자열 끝이 처리되고, 문자열 관련 함수가 제대로 동작합니다.

그러나 b는 scanf에서 입력 받지 않으니 문자만 복사해서는 \0 널문자가 생략되니까 문자열 끝까지 진행하게 됩니다.

UNIT 6 참고해서 디버거 사용법 공부하고 중단점 찍어서 프로그램이 실행 중에 실제 데이터가 어떻게 되는지 관찰하면 코드를 더 잘 이해할 수 있습니다.

디버거 사용은 기본 중의 기본입니다.

잘못된 코드이므로 통과되지 않는 게 맞습니다.

DEV C++는 오류를 정상적으로 처리하는 매우 관대한 프로그램이므로 추천하지 않습니다. 절대 쓰시면 안 됩니다. 온라인 심사가 없으면 잘못된 코드를 작성하고도 프로그램이 동작한다는 이유로 제대로 동작하는 코드를 작성했다고 생각할 수 있고, 잘못된 코딩 습관을 배우게 될 가능성이 매우 큽니다. 이는 회사에서 가장 싫어하는 유형의 코딩 습관이 될 것입니다.

처음부터 엄격한 컴파일러로 깐깐하게 배우는 게 좋습니다. 잘못든 습관은 안 배운 사람보다 고치기 어렵습니다.


, 전 역하자님이 작성
 
문의한 코드는 삭제합니다.


1. 돌려봤는데 결과값 다 양호하게 나오는데 뭐가 문제일까요?

한 방식 배열 입력받음(word)

공백 제외하고 연속되게 만듬 (copytext)

기존 회문방식으로 for구문써서 돌렸음.


+질문

2. copytext를 초기화안시켜주면 잉여값이 뜨더라구요 그래서 초기화시켜줬는데 왜 word는 초기화 안시켜줘도 가능하죠?

(도장_ 관리자님이 수정함 - 원문 제출일: 2020년 3월 21일, 토요일, 오후 7:17)

, 도장_ 관리자님이 작성
 

문제가 요구하는 출력

1

문의한 코드의 출력

단어를 입력하세요: 1

심사문제는 텍스트 일치로 판단합니다.

안내 문구가 없어야 합니다.

코딩 도장을 순차적으로 학습하면 이런 실수는 하지 않습니다. 학습 로그를 살펴보아도 순차 학습이 아니라 중도 학습으로 나타납니다.

순차 학습을 의도로 설계되어 있습니다. 순차적으로 학습하는 게 멀리 돌아가는 것 같아도 지름길입니다.


 

47.5 심사문제: 공백이 포함된 회문 판별 코드

문의한 코드는 삭제합니다.

안녕하세요! 컴파일상으로는 오류가 안나고 결과가 출력이됩니다.

혹시 어떤 문제가 있는지 피드백 부탁드리겠습니다. 감사합니다.

(도장_ 관리자님이 수정함 - 원문 제출일: 2020년 3월 3일, 화요일, 오후 11:46)

 
ra    r

이와 같이 공백이 여러 개인 경우에도 회문 판별이 되어야 합니다.

문제의 요구사항을 잘 파악해보세요.


, 도장_ 관리자님이 작성
 

/tmp/157629895/main.c:18:10: error: array initializer must be an initializer list or string literal
    char s1[30] = word;
         ^
/tmp/157629895/main.c:46:21: warning: incompatible pointer types passing 'char *[30]' to parameter of type 'const char *' [-Wincompatible-pointer-types]
    length = strlen(sArr);   
                    ^~~~
/usr/include/string.h:394:35: note: passing argument to parameter '__s' here
extern size_t strlen (const char *__s)
                                  ^
1 warning and 1 error generated.
이와 같은 에러가 발생합니다. 컴파일이 안 됩니다.

온라인 컴파일러에서 실습해보셔도 됩니다.

https://glot.io/snippets/fkzd9fgm61