2014-06-05 2 views
0

저는 계속 Classic K & R Book "The C Programming Language"제 2 판으로 작업 할 것입니다.C 프로그래밍 언어 연습 1.5.4 (코드에서 편집 오류가 있습니까?)

장면.

단어 찾기에 관한 22 페이지의 연습 결과에 문제가있었습니다. 원하는 출력을 얻지 못합니다.

질문.

마침내 나는 코드 구문에서 실수를 발견했다고 생각하십니까?

CODE FRON ORIGINAL PDF.

운동 (복사 및 PDF에서 붙여 넣기) 말 :

1.5.4 말씀이 유용한 프로그램의 우리의 시리즈의 네 번째 계산 단어 이다 느슨한 정의와 행, 단어와 문자를 계산 공백, 탭 또는 개행을 포함하지 않는 문자 시퀀스. 이것은 UNIX 프로그램 wc의 기본 버전입니다.

if (c == ' ' || c == '\n' || c = '\t') 

필요가 없습니다 말 :

#include <stdio.h> 

#define IN 1 /* inside a word */ 
#define OUT 0 /* outside a word */ 

/* count lines, words, and characters in input */ 
main() 
{ 
    int c, nl, nw, nc, state; 

    state = OUT; 
    nl = nw = nc = 0; 
    while ((c = getchar()) != EOF) { 
     ++nc; 
     if (c == '\n') 
      ++nl; 
     if (c == ' ' || c == '\n' || c = '\t') 
      state = OUT; 
     else if (state == OUT) { 
      state = IN; 
      ++nw; 
     } 
    } 
    printf("%d %d %d\n", nl, nw, nc); 
} 

변경은

이 말은 어디에서 일을 할 NEDED?

if (c == ' ' || c == '\n' || c == '\t') 

나의 평가가 맞는 경우. 나중에 23 페이지에서 같은 오류가 나타나 라인을 설명합니다.

확인이 필요합니다.

그것은 논리가 정확히 무엇인지 말해 주지만,이 오류는 이런 책에 있습니다. 확인이 필요해,이 괴물이있을거야.

귀하의 의견을 기다리고 있습니다.

2 줄의 차이점은 무엇입니까 :

는 사용자 로한 요청되어 추가? 질문을 더 분명하게하십시오. 로한 33 분 전.

로한에 대한 답변 :

안녕하세요 덕분에 의문을 제기한다. C에서

x = 5는 변수 x에 값 5를 할당하는 데 사용됩니다. 당신이 원하는 것은 평등의 기호를 확인하는 경우

그러나, X의 == 5 말은 x가 5와 동일한 경우

경우 올바른 ==에게 있습니다 ...이 책을 볼 수있는

= '\의 t'말도 안돼 나에게주는 오류

했다

C를 할당하는 "C 탭 같은 경우"if (c == '\t') 어디 \ t이다 Tab 키입니다.

== 확인을 두의 값 경우 :

나는 당신이 볼 수있는 위치를 http://www.tutorialspoint.com/cprogramming/c_operators.htm

을 확인할 수 있습니다 내가

요청에 대한 몇 가지 의심

그리고 감사를 명확히 한 희망 피연산자가 같거나 같으면 yes이고 then 조건이 참이됩니다.

(A == B)은 사실이 아닙니다.

+1

2 줄의 차이점은 무엇입니까? 질문을 더 분명하게하십시오. – Rohan

+1

예, 귀하의 가정은 정확합니다, errare humanum est;) –

답변

0

예, ===으로 대체해야한다고 판단됩니다.

오타는 R.

그러나, 당신이 바로 PDF 파일의 코드를 복사 언급조차 책, 심지어 K &에 발생합니다. 그 PDF는 책에서 OCR 된 것 같았고 OCR 소프트웨어는 완벽하지 못하여 실수가 발생할 수 있습니다.

+0

빠른 답장을 보내 주셔서 감사합니다. 이베이에서 종이 책을 가지고 있으며 같은 실수를 저질렀습니다. 나는 그것을 점검하고 Google에서 입력 오류를 건너 뛸 수 있도록 여기에 코드를 붙여 넣으려는 PDF를 찾습니다 (나에 의해). – jsampedro

+0

NP. 내가 말했듯이, 이런 것들은 실제 인쇄물에서 일어난다. 그리고 나는 오류로 가득 찬 PDF를 보았다. 그래서 나는 항상 발가락에 있어야한다. – dandan78

+0

다른 것들의 책에는 이런 오류가 있다는 것을 알지만,이 프로그래밍 오류와 같은 책에서는 K & R로 존경하는 두 사람의 존경심이 너무 큽니다. 게시자의 리뷰어. – jsampedro