[C언어] 누적된 데이터량을 나타내고 싶은데 어떤 식으로 프로그래밍을 하면 좋을까요??

mewestside의 이미지

---- data ----
2002-12-26
2002-12-17
2002-12-16
2002-12-12
2002-12-10
2002-12-07
2002-12-05
2002-12-05
2002-11-13
2002-11-06
2002-10-28
2002-10-25
2002-10-23
2002-10-20
2002-10-19
2002-10-16
2002-10-04
2002-09-19
2002-09-16
2002-09-15
2002-08-13
2002-08-10
2002-08-06
2002-08-06
2002-07-17
2002-07-12
2002-07-09
2002-07-02
2002-06-23
2002-06-07
2002-05-29
2002-04-17
2002-04-14
2002-04-01
2002-03-25
2002-03-25
2002-03-22
2002-03-17
2002-03-12
2002-03-08
2002-03-07
2002-02-28
2002-02-07
2002-02-03
2002-02-08
2002-01-16
2002-01-13
2002-01-10
2002-01-05

다음과 같은 데이터가 있을 경우에...
월별 누적 횟수를 나타내고 싶습니다...
1월에는 4회
2월에는 4회
이런식으로 말이죠...

제가 생각한 경우는 for 문을 이용해서 루프를 돌리고
if 와 else if 를 이용해서 쭉 나열하는 방법인데..
그러면 너무 길어지는것 같아서 여쭤봅니다...
어떤식으로 프로그래밍을 하면 좋을지요...??

저의 C언어 수준은 초급입니다..ㅠ

snowall의 이미지

int a[12];
for(i=0;i++;i<12){
a[i]=0;
} // 초기화
while(EoF){
  a[Month(ReadData())]++;
}
 
Month(char data){
 return mm //데이터에서 읽어온 월을 리턴
}
 
ReadData(){
 return 데이터를 리턴
}

저라면 이런 구조로 만들 것 같네요

피할 수 있을때 즐겨라! http://melotopia.net/b

snowall의 이미지

만약 데이터 형식이 저렇게 10자리 스트링으로만 주어진다면

s를 저 10자리 문자열이라고 가정하면, 파이썬 문법처럼 표현할 경우, a[int(ReadData[5:6])]++ 구문 하나로 루프를 돌리면 되겠네요.

즉, 5~6번째 글자 2개를 정수로 캐스팅하고, 그걸 그대로 배열 인덱스로 쓰면 되겠죠.

피할 수 있을때 즐겨라! http://melotopia.net/b

mewestside의 이미지

데이터는 원래는 시간까지 다 나와있습니다..
만들려고 하는 프로그램은..
데이터의 월별 누적 갯수와 시간별 누적 갯수 입니다...
그래서 지금 머리를 싸매고 하고 잇습니다..ㅠ

snowall의 이미지

포맷이 항상 정해져 있다면, 문자열에서 특정 부분만 잘라내고 그걸 그대로 인덱스로 쓰는 루틴을 만들어 보세요.

strsplit이랑 atoi를 잘 쓰면 될 것 같은데요.

아니면 시간 데이터 파싱하는 라이브러리를 쓰시면 되겠지만 그건 더 복잡해보이네요

피할 수 있을때 즐겨라! http://melotopia.net/b

익명 사용자의 이미지

월별로 카운트 하는거면
걍 해당월이 몇번 나왔나 카운트만 하면 되죠...

2002-12이 몇번 나왔나 카운트 하면 2002년 12월에 몇건인지 바로 나오잖아요.

댓글 달기

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