디시인사이드 갤러리

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

갤러리 본문 영역

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

꾸닥(211.41) 2010.10.02 00:35:04
조회 82 추천 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 - -
219553 #define 과 관련한 질문! [3] 에버리치갤로그로 이동합니다. 10.11.22 124 0
219552 자막있는 유튜브 동영상에서 자막 SMI로 다운받기다 [1] URA!갤로그로 이동합니다. 10.11.22 348 0
219549 아 -_- 소스 다 갈아엎어야할 상황.. [1] ㅇㅇㄹ(168.131) 10.11.22 99 0
219548 iOS 개발에서 딜리게이트로 그때그때 호출되는 메소드가 있는데 써니덕후갤로그로 이동합니다. 10.11.22 74 0
219547 저번주에 회로설계 과외받았는데 [2] .3(124.137) 10.11.22 95 0
219543 혹시 프로젝트 납기 늦어서 벌금문 사례 있음? [6] 한강구조견(59.6) 10.11.22 146 0
219542 아 이니시스 [2] alghost갤로그로 이동합니다. 10.11.22 76 0
219541 ACM-ICPC대해같은거 질문 [2] asdf(124.54) 10.11.22 92 0
219539 조율하기 싫으면 잘 하는 학생들 쫌 가만히 냅둬야지 일광면(61.100) 10.11.22 69 0
219538 조율하기 싫으니까 쉽게쉽게 가자 [1] 세브(211.117) 10.11.22 123 0
219537 스팸 필터링 하다 발견한거. [3] rntjr갤로그로 이동합니다. 10.11.22 105 0
219535 운전하는사람 참고해라. [6] rntjr갤로그로 이동합니다. 10.11.22 168 0
219534 아침을 여는 덕짤 [4] 땡칠도사갤로그로 이동합니다. 10.11.22 182 0
219533 한 2년전 부터 생각해 왔던건데... 인류 발전이요 [4] 미클갤로그로 이동합니다. 10.11.22 129 0
219530 학부수업을 대하는 교수들 태도의 유형 [3] 파리대왕(192.55) 10.11.22 211 0
219529 Esaka? [2] prismatic갤로그로 이동합니다. 10.11.22 75 1
219528 Dovelet.com왜 안되는거에여? [2] 비둘기똥(124.54) 10.11.22 66 0
219527 이건 왠 또 병신이야 [3] 땡칠도사갤로그로 이동합니다. 10.11.22 158 0
219526 이번에 언어영역에서 나온 배열, 연결 리스트 문제. [3] LordofPruna(175.193) 10.11.22 149 0
219525 새벽반의 기운이 솟아오른다 [3] 소맛소금(211.202) 10.11.22 95 0
219523 아싸 득템 [1] ㅇㄹ(168.131) 10.11.22 137 0
219521 님들 그만 달리시구여 ㅡㅡ.. Ajax 비동기 통신이라는게 정확히 뭐임? [3] ㅇㄹ(168.131) 10.11.22 129 0
219508 대한민국 쏠림현상 쩐다.ㅋㅋㅋㅋ [3] 홍어(58.233) 10.11.22 186 0
219506 어느 병`신 같은 댓글을 봤는데 ... [3] 임베디드(112.150) 10.11.22 104 0
219502 이거 어케푸냐 http://220.81.36.44/pool/usa_Bob [11] 커피속옷(124.54) 10.11.22 162 0
219500 형들 도와죠요ㅜㅜㅜ 흐읅(110.9) 10.11.22 79 0
219499 요번에 방구석을 뒤지다가 유치원떄 쌌던 미니카가 나왔거든 [5] 김씨발(124.80) 10.11.22 362 0
219496 미궁게임 사이트 주소 그냥 알아내는 방법 없나요?하위 디렉토리 미궁게임(124.50) 10.11.22 57 0
219495 아빠랑 싸웠는데 아빠가 안들어와.. [2] 아미치게따(121.178) 10.11.22 88 0
219492 나궁금이한게있는데 씨발 [8] 김씨발(124.80) 10.11.22 93 0
219490 ???훃아 아까 보여준문제있잖아 [1] 김씨발(124.80) 10.11.22 51 0
219487 아우 씨발 나좀 도와주세요 ㅜㅜ [7] 김씨발(124.80) 10.11.22 69 0
219482 김늅늅님 뇌자알 봐도 소용 없다면요.... [4] 미클갤로그로 이동합니다. 10.11.22 108 0
219479 [자바] 이클립스 서블릿 web.xml은 어디에 위치해있나요?? [13] 나좀도와줘(118.220) 10.11.22 380 0
219471 [별사탕19] os의 바다에 표류하다 깜박 잠이 들었습니다 [5] 별사탕(115.20) 10.11.22 115 0
219469 자바 깨알같은 자바 질문 2번째(조공첨부) [1] 말년병장갤로그로 이동합니다. 10.11.22 133 0
219467 폴아웃3 처럼 살면 그래도 지금처럼 지루하지는안을듯 [2] 이브(124.80) 10.11.22 75 0
219465 공각기동대 전뇌는 힘들어도 의체는 우리죽기전에 되지않을까여? [18] GF(2)갤로그로 이동합니다. 10.11.22 232 0
219464 폴아웃3이해봤냐 거기보면 문과생들 다 뒤진것같더라 [1] 이브(124.80) 10.11.22 80 0
219461 프로그래머 니들은 그냥 컴파일러다. ㅋㅋㅋㅋ [3] 홍어(58.233) 10.11.22 112 0
219459 자바 깨알질문 하나만요(if문을 switch로 바꿀때여) [3] 말년병장갤로그로 이동합니다. 10.11.22 81 0
219457 너내들 책많이읽냐? 프로그래머는 책많이 읽어야 된다고하는데 [5] 이브(124.80) 10.11.22 75 0
219455 c언어 좀 공부하려고하는데 정리 잘된 사이트나 강의 자료 없나요? [6] 돌멩이(220.70) 10.11.22 87 0
219453 ㅠㅠ 강제형변환이 안되요 ㅠㅠ [7] 고갱님(110.5) 10.11.22 62 0
219452 양자 컴퓨터 회의적 [1] .3(61.4) 10.11.22 98 0
219451 양자컴퓨터 우리 70먹으면 나오겠지 [1] 이브(124.80) 10.11.22 76 0
219449 횽들 내일 면접보러 가는데... [4] 허허벌판갤로그로 이동합니다. 10.11.22 84 0
219447 양자컴퓨터 수준이면 우리가 사용하는 평소 언어 입력해도 충분히 이해가능하 [5] 이브(124.80) 10.11.22 78 0
219445 나 궁그미 한게있는데 [5] 이브(124.80) 10.11.22 82 0
219444 소셜네트워크-이런건 보고다니냐? 자석주소 푼다. [2] 이거나봐라(211.49) 10.11.22 123 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2