디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

간단한 주석달아서 다시 질문드려요

꾸닥(211.41) 2010.10.02 00:35:04
조회 83 추천 0 댓글 4

Q) 입력된 단어의 길이에 대한 히스토그램 작성

#include <stdio.h>


#define MAXWORDLEN 10

int main(void)
{
  int c;
  int inspace = 0;                                   //공백중복방지
  long lengtharr[MAXWORDLEN + 1];                                                                
  int wordlen = 0;                                   //문자수길이

  int firstletter = 1;                                   //????
  long thisval = 0;                                     //히스토그램 Y축
  long maxval = 0;                                    //히스토그램 Y축
  int thisidx = 0;                                   //for문
  int done = 0;                                   //while문

  for(thisidx = 0; thisidx <= MAXWORDLEN; thisidx++)
  {
    lengtharr[thisidx] = 0;                                   //배열 초기화
  }

  while(done == 0)
  {
    c = getchar();

    if(c == \' \' || c == \'\\t\' || c == \'\\n\' || c == EOF)                                   //입력받은문자가 공백또는 EOF일시
    {
      if(inspace == 0)
      {
        firstletter = 0;
        inspace = 1;                                   //연속된 공백시 if문 진입을 방지

        if(wordlen <= MAXWORDLEN)                                   //if문 들어오기전에 증가된 wordlen의 값 <=10이하일시
        {
          if(wordlen > 0)
          {
            thisval = ++lengtharr[wordlen - 1];                                   // 증가
            if(thisval > maxval)
            {
              maxval = thisval;                                   //maxval =후에 그래프표기시 최대y축값
            }
          }
        }
        else                                   //if문 들어오기전에 증가된 wordlen의 값 10초과시
        {
          thisval = ++lengtharr[MAXWORDLEN];
          if(thisval > maxval)
          {
            maxval = thisval;                                   //이하 반복
          }
        }
      }
      if(c == EOF)
      {
        done = 1;
      }
    }
    else
    {
      if(inspace == 1 || firstletter == 1)
      {
        wordlen = 0;
        firstletter = 0;
        inspace = 0;
      }
      ++wordlen;                                   //루프반복될수록 문자수값 증가
    }
  }

  for(thisval = maxval; thisval > 0; thisval--)                                   //그래프표기
  {
    printf("%4d  | ", thisval);
    for(thisidx = 0; thisidx <= MAXWORDLEN; thisidx++)
    {
      if(lengtharr[thisidx] >= thisval)
      {
        printf("*  ");
      }
      else
      {
        printf("   ");
      }
    }
    printf("\\n");
  }
  printf("      +");
  for(thisidx = 0; thisidx <= MAXWORDLEN; thisidx++)
  {
    printf("---");
  }
  printf("\\n       ");
  for(thisidx = 0; thisidx < MAXWORDLEN; thisidx++)
  {
    printf("%2d ", thisidx + 1);
  }
  printf(">%d\\n", MAXWORDLEN);

  return 0;
}

//출력값 

  44  | *      *                       
  43  | *      *  *        *             
  42  | *  *  *  *        *             
  41  | *  *  *  *        *             
  40  | *  *  *  *        *             
  39  | *  *  *  *        *             
  38  | *  *  *  *        *             
  37  | *  *  *  *        *             
  36  | *  *  *  *        *             
  35  | *  *  *  *        *             
  34  | *  *  *  *        *             
  33  | *  *  *  *        *             
  32  | *  *  *  *        *             
  31  | *  *  *  *        *             
  30  | *  *  *  *        *           * 
  29  | *  *  *  *        *           * 
  28  | *  *  *  *  *     *           * 
  27  | *  *  *  *  *     *           * 
  26  | *  *  *  *  *     *           * 
  25  | *  *  *  *  *  *  *           * 
  24  | *  *  *  *  *  *  *           * 
  23  | *  *  *  *  *  *  *           * 
  22  | *  *  *  *  *  *  *        *  * 
  21  | *  *  *  *  *  *  *        *  * 
  20  | *  *  *  *  *  *  *        *  * 
  19  | *  *  *  *  *  *  *        *  * 
  18  | *  *  *  *  *  *  *        *  * 
  17  | *  *  *  *  *  *  *        *  * 
  16  | *  *  *  *  *  *  *        *  * 
  15  | *  *  *  *  *  *  *        *  * 
  14  | *  *  *  *  *  *  *  *     *  * 
  13  | *  *  *  *  *  *  *  *     *  * 
  12  | *  *  *  *  *  *  *  *     *  * 
  11  | *  *  *  *  *  *  *  *     *  * 
  10  | *  *  *  *  *  *  *  *     *  * 
   9  | *  *  *  *  *  *  *  *  *  *  * 
   8  | *  *  *  *  *  *  *  *  *  *  * 
   7  | *  *  *  *  *  *  *  *  *  *  * 
   6  | *  *  *  *  *  *  *  *  *  *  * 
   5  | *  *  *  *  *  *  *  *  *  *  * 
   4  | *  *  *  *  *  *  *  *  *  *  * 
   3  | *  *  *  *  *  *  *  *  *  *  * 
   2  | *  *  *  *  *  *  *  *  *  *  * 
   1  | *  *  *  *  *  *  *  *  *  *  * 
      +---------------------------------
        1  2  3  4  5  6  7  8  9 10 >10


C플그램언어 책 1-13번문젠데 "문자길이 사용빈도를 히스토그램으로 나타내시오"

개인적으로 짜보고 난다음에 해답부분도 하나하나 그려가면서 해석해보고있는데

fristletter란 변수가 무엇에 의해 필요한지 해석을 못하고있음..ㅠㅠ;;

컴파일돌려가면서 있고없고의 차이도 모르겟고 ㅠ 은근히 찜찜해서

되게 간단한 이유같은데 뭔지모르겟음;;

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 어떤 상황이 닥쳐도 지갑 절대 안 열 것 같은 스타는? 운영자 24/05/20 - -
217393 아침 점심 저녁을 가리지 않고 활성화 되어있는 갤러리 [3] ㅁㄴㅇ(113.10) 10.11.12 82 0
217391 5살 어린 여자 사람한테 호감을 느낌 [4] 금호족기(61.75) 10.11.12 177 0
217390 김민류 병장님..김민류 병장님.. [9] 금호족기(61.75) 10.11.12 155 0
217387 나도 여자였으면 이런거 하고 편하게 돈 벌었을꺼 같아.. [6] rntjr갤로그로 이동합니다. 10.11.12 223 0
217384 이게 뭐야? [2] rntjr갤로그로 이동합니다. 10.11.12 108 0
217380 3차원 배열 선언만 해도 메인문에 들어가질 않네요 [2] ㅁㅁㅁㅁ(211.213) 10.11.12 96 0
217379 바람의 나라 하니깐 떠오르는 건데... [11] 닭볶음탕(175.196) 10.11.12 198 0
217376 나 여호와에 대한 개념 좀 잡아줘... [1] 분당살람갤로그로 이동합니다. 10.11.12 103 0
217375 대한민국의 프로그래머로써 살아가는건 어떤건가요 [3] 아 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ(121.137) 10.11.12 160 0
217374 아 까는글은 대학갤러리에만 있는줄만 알았떠니 ㅋㅋㅋㅋㅋ [4] 아 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ(121.137) 10.11.12 135 0
217373 맥가이버와 매미의 진실을 알아냈다. [3] 닭볶음탕(175.196) 10.11.12 140 0
217370 위인전 추천좀요 [4] ㅁㅁ(121.169) 10.11.12 83 0
217369 .... [3] 권혁진(218.239) 10.11.12 65 0
217368 레이져 vim 말고 편집기 vim있자나요 [4] vim(113.131) 10.11.12 96 0
217367 낭 진짜 C기초플러스보다 C에대해 자세히 쓴책은 없다고 생각하는데 [1] 대마법서오즈갤로그로 이동합니다. 10.11.12 118 0
217366 Rememberance Day [3] 땡칠도사갤로그로 이동합니다. 10.11.12 85 0
217365 ㅇㅇㅇㅇ는 학교댕기면 학교공부만 하는줄 아는듯 [1] 일광면(119.198) 10.11.12 96 0
217364 매우 화가납니다. [2] 11이다갤로그로 이동합니다. 10.11.12 120 0
217362 나는 도무지 이해할 수가 없다 [4] 별가사리(122.40) 10.11.12 122 0
217361 ㅇㅇㅇㅇ 보거라 [1] cyluss갤로그로 이동합니다. 10.11.12 57 0
217360 컴공과 간섹기는 애초에 대가리가 병진 [10] ㅇㅇㅇㅇ(112.171) 10.11.12 354 0
217359 이런 여자 어디 없냐 [1] 임베디드(112.150) 10.11.12 126 0
217358 제가 컴퓨터학과인데 철학과 이중or복수전공하면 어떨까요 [6] ㅁㅁ(175.112) 10.11.12 143 0
217357 그럼형들은 기계과 vs 컴공 뭘선택하겠어,, [11] ㅇㅇ(222.232) 10.11.12 204 0
217355 양자 컴퓨터 나오면 바둑도 컴퓨터로 정복이 가능함? [1] ㅇㅁㄹㄷ(203.93) 10.11.12 197 0
217352 형들 명문대 컴공도 어쩔수없는 코더가 됨? [8] ㅇㅇ(222.232) 10.11.12 317 0
217351 G20 중 1인 시위하는 용기있는 남자 [5] ㅇㅇㅃ갤로그로 이동합니다. 10.11.12 123 0
217350 왜 G20 정상회의는 전남 영암에서 하지 않는가 ... [1] 임베디드(112.150) 10.11.11 60 0
217349 프로그램한다고 여친아버지가 결혼 반대하는데 어떻게 해야할지.. [6] 히드라박(112.171) 10.11.11 154 0
217347 프로그래밍을 입문부터 혼자 공부할 경우 [7] ㅇㅇㅃ갤로그로 이동합니다. 10.11.11 192 0
217346 지렁이 게임은 [2] 읭읭읭읭갤로그로 이동합니다. 10.11.11 180 0
217345 횽들 구경하라고 한 번 글싸질러봄... [5] ㅇㅇㅋㄷ갤로그로 이동합니다. 10.11.11 57 0
217344 굳이 나라에서 창의력 같은 거를 가르칠 필요가 있냐?? [2] ㅇㅇ(121.133) 10.11.11 102 0
217343 엉엉 횽들 스트레스 받아 죽을 것 같아 T.T [3] 해일리갤로그로 이동합니다. 10.11.11 68 0
217342 나 퇴갤할꺼라능 [2] Ms.나나갤로그로 이동합니다. 10.11.11 35 0
217341 [열강c언어]c언어의핵심 함수까지 완파음, 하지만 문제를 못풀게임 이유가 [5] 플밍도사(119.200) 10.11.11 167 0
217340 api프로젝트를 준비해야되는데 [23] 읭읭읭읭갤로그로 이동합니다. 10.11.11 160 0
217339 복사생성자 다시 질문 ㅜㅜ [19] ㅇㅇㅇ(59.25) 10.11.11 131 0
217338 회사안마의자에왔다능 [6] 개쉛기갤로그로 이동합니다. 10.11.11 104 0
217337 망함... [1] 망함(218.101) 10.11.11 86 0
217335 슈바 안드로이드는 아무리봐도 커뮤니티가 제대로 된데가 별로 없어 111(218.55) 10.11.11 45 0
217333 쿄코 엉엉 ㅠㅠㅠ [7] 아주아슬갤로그로 이동합니다. 10.11.11 110 0
217332 illegal break [3] 회전매니아갤로그로 이동합니다. 10.11.11 127 0
217327 슬슬 셔터내리고 자자능 [3] DMW(125.138) 10.11.11 97 0
217320 답을 찾았어 Ordinary Day갤로그로 이동합니다. 10.11.11 53 0
217318 형아가 이담에 맥가이버 될테니까 분당살람갤로그로 이동합니다. 10.11.11 54 0
217317 레알 플밍은 누군가 알려주면 안되는듯 [3] 몬토야갤로그로 이동합니다. 10.11.11 100 0
217316 DMW횽 부탁이여.. [4] cyluss갤로그로 이동합니다. 10.11.11 89 0
217315 5년전에 산 내 키보드.. [6] rntjr갤로그로 이동합니다. 10.11.11 193 0
217313 지금 온통 tv 에 난리구나. [8] rntjr갤로그로 이동합니다. 10.11.11 254 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2