구조체의 멤버나, 자료구조를 어떻게 구성해야 ..??

익명 사용자의 이미지

데이터를 구조체나 자료구조를 어떻게 구성해야 할지..-_-;..

조언 좀 부탁드립니다.

사과 1
배 1
사과 1
수박 1
사과 2
포도 2
포도 2
딸기 2

생략...

딸기 980
수박 980 // 980개 까지 있어요..

데이터를 첫번째 과일이름과, 뒤에 숫자는 상자라고 생각하면 되요.

위에 4줄 1로 된 것은 상자 1에 과일 4개가 들어있다..

이 데이터를 출력할 때는

상자 1에는 사과 2개, 배 1개, 수박1개, 상자 2에는 사과 1개, 포도 2개,
딸기 1개 이런 씩으로

출력을 해야 하는데요..

저 위에 데이터를 어떻게 처리해야 저장해야 하는데, 구조체를 써서 대략
적으로 구성해 보았는데.

나중에 출력시이 있어서. 문제점이 계속 발견되어서요..-_-;.
어떻게 하면 좋을까요??

언어는 C로..

익명 사용자의 이미지


음... 숙제 같은 느낌이 나서... ㅡ.ㅡ;;

저 같으면 구조체의 배열로 하겠습니다.
980개로 정해져 있으면 배열을 고정길이로 해도 될듯 하고요,
몇개가 들어올지 모른다면 포인터와 realloc() 등을 이용해서
동적으로 크기를 바꿀 것 같고요..

배열의 인덱스는 상자번호로 쓰면 될 것 같고요,
구조체 멤버는 해당 상자에 들어있는 특정과일(사과, 배 등)의
갯수를 표시할 것이고요,
한 줄씩 읽으면서 상자번호로 배열의 원소를 찾고
(그냥 인덱스로 쓰면 되져.. -_-;;),
과일이름으로 구조체 멤버를 찾아서 갯수를 1씩 증가시키면 되겠죠?

이 경우에는 과일의 종류가 미리 정해져 있다는 가정이고요,
그렇지 않은 경우에는 과일갯수는 링크트 리스트로 구현하든지,
배열의 원소인 구조체의 멤버를 배열과 배열의 길이 등으로 표시하고,
외부에 과일종류에 따른 구조체 멤버 배열내 인덱스로 매핑해주는
역할을 해 주는 녀석을 두겠습니다. 이때 구조체 멤버인 배열은
동적으로 크기가 조정될 것이고요.

아님 언어의 제약이 없다면 Perl의 배열과 해쉬를 쓰든지요.. ㅡ.ㅡ;;

초기화, 배열 범위검사, 동적인 할당, 매핑구조 동적인 변경 등에
신경을 쓰든지, 프로그램내의 가정을 세우고, 가정에 벗어나는 것들은
오류로 간주하든지 해야겠죠?

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.