수정

hos921019의 이미지
익명 사용자의 이미지

코딩 스타일에 몇 가지 명백한 문제가 있기는 합니다만, 당장 프로그램을 골로 보낼 만한 문제는 아닌 것 같아 보이는군요.

ex) if((int)point[i]==48) 같은 코드는 왜 쓰는 겁니까? 이식성을 꼭 고려할 필요가 없는 코드라고 하더라도, 일부러 애써서 이식성을 깨트릴 필요는 없잖아요.
'0'에 대응되는 아스키 코드 값이 48이라는 것을 외웠다는 걸 아무리 자랑하고 싶더라도 이런 데서는 if(point[i]=='0')와 같이 씁시다.

아무튼, 좀 더 좋은 품질의 코드를 만드는 법, 있을 법한 버그를 재현할 수 있는 입력값을 찾는 법, gdb 등을 이용하여 디버그하는 법 등은 알아서 익히도록 하시고,
이런 종류의 문제는 대체로 배열 범위를 벗어난 인덱스로 인하여 생기는 경우가 많습니다.

안 그래도 프로그램에 배열이 두 개(zeroone, result)나 있는데, 뭐 문제 조건에서 배열 크기를 지정해줬을 경우 이런 식으로 하드코딩해도 문제가 없긴 합니다.
사실 result 배열은 애초에 f_zeroone 함수가 반환할 때마다 YES/NO를 바로 출력하게 만들면 애초에 필요 없는 배열 아니었을까 하는 생각도 들고,
그보다는 zeroone 배열이 신경 쓰이는군요. 문제 조건에서 입력 문자열의 길이가 최대 9999라거나 하는 식으로 주진 않았을 텐데요. 보통 최대 10000이라는 식으로 주죠.
C언어 문자열은 반드시 NULL문자가 붙기 때문에 배열 정의 시 최대 문자열 길이보다 한 칸 더 길게 줘야 합니다. 특히 스택에 잡은 배열일 경우 단 한 바이트 넘쳐서 문제가 되는 경우가 정말 심심찮게 많아요.

한 줄 요약. zeroone 배열 길이 10001으로 바꿔보세요.

라스코니의 이미지

어떤 tool을 사용하는지 모르겠지만 debug - step 으로 각 zeroone, cnt, s, e가 다 제대로 들어오는지 확인해 보세요.
scanf 동작이 때로는 생각외일 때가 많습니다. 인터넷으로 scanf 오류에 대해서 검색해 보세요.

msshinok의 이미지

gcc -o zeroOne ZeroOne.c
./zeroOne
해서 실행해봤는데, segmentatio fault 안남.

ubuntu 14.04 LTS Terminal에서 실행.

***컴파일및 실행환경 체크필요할듯...

xxx@xxx-VirtualBox:~/work$ vi zeroOne.c
xxx@xxx-VirtualBox:~/work$ ./zeroOne
0000011111
1
0 4
YES
xxx@xxx-VirtualBox:~/work$ ./zeroOne
1111100000
1
0 4
YES
xxx@xxx-VirtualBox:~/work$ ./zeroOne
0101011111
1
0 4
NO
xxx@xxx-VirtualBox:~/work$

The die is cast!

백연구원의 이미지

입력 값에 대한 유효성을 검사하는 코드를 넣으세요.


소곤소곤

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.