我繼續使用經典K & R書籍「The C Programming Language」,第二版。C編程語言練習1.5.4(在編碼中發現編輯錯誤?)
SCENE。
我在第22頁關於字數統計的練習輸出出現了問題。沒有獲得所需的輸出。
問題。
最後我覺得在代碼語法中發現了一個錯誤?
代碼FRON ORIGINAL PDF。
練習說(複製和粘貼PDF):
1.5.4單詞統計的第四個在我們的系列有用的程序計算行數,字數和字符,與寬鬆的定義,一個字 任何不包含空白,製表符或換行符的字符序列。這是UNIX程序wc的一個簡單版本。
#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);
}
CHANGE NEDED工作
凡說:
if (c == ' ' || c == '\n' || c = '\t')
沒有必要說什麼?
if (c == ' ' || c == '\n' || c == '\t')
請。
如果我的評估是正確的。稍後會在第23頁中出現相同的錯誤,解釋該行。
確認需要。
它告訴我究竟是什麼邏輯,但它似乎如此令人難以置信,這個錯誤是在這樣的書。我需要一個確認,會有這個怪事。
非常感謝soo爲您的意見。
添加到用戶Rohan請求:
2行有什麼區別?讓問題更清楚。 - 羅漢33分鐘前。
回答羅漢:
你好,感謝問題。 In C
例如,x = 5用於向變量x賦值5。
但是,如果你想要的是檢查等號是正確的==
如果x == 5說,如果x等於5 ...
正如你可以看到這本書被賦予C =「\ t」
這是沒有意義的,並給我的錯誤
「如果c等於標籤」是if (c == '\t')
凡\ t是TAB鍵。
我希望我已經澄清了一些疑問
並感謝要求
您可以檢查http://www.tutorialspoint.com/cprogramming/c_operators.htm
從中可以看出:
==檢查是否兩個值操作數是否相等,如果是,則條件成立。
(A == B)不正確。
2行有什麼區別?讓問題更清楚。 – Rohan
是的,你的假設是正確的,errare humanum est;) –