2013-01-13 29 views
2

我知道有在同樣的例子另一個問題,但對於不同的問題。我碰到的程序示例輸出錯誤在K&R章1.6

這是代碼例如:

#include <stdio.h> 
/* count digits, white space, others */ 
main() 
{ 
    int c, i, nwhite, nother; 
    int ndigit[10]; 
    nwhite = nother = 0; 

    for (i = 0; i < 10; ++i) 
     ndigit[i] = 0; 

    while ((c = getchar()) != EOF) 
     if (c >= '0' && c <= '9') 
      ++ndigit[c-'0']; 
     else if (c == ' ' || c == '\n' || c == '\t') 
      ++nwhite; 
     else 
      ++nother; 

    printf("digits ="); 

    for (i = 0; i < 10; ++i) 
     printf(" %d", ndigit[i]); 

    printf(", white space = %d, other = %d\n", nwhite, nother); 
} 

後我運行是和與Ctrl + D執行該程序,我得到:數字= 0 0 0 0 0 0 0 0 0 0,空白= 0,其他= 0。從Xcode中...

但在他們說書 「這個程序對自身的輸出是:位數= 9 3 0 0 0 0 0 0 0 1,空白= 123,其它= 345」

你能告訴我什麼是對please..tnx去。

+3

你怎麼給程序本身作爲輸入? – StoryTeller

+0

剛拿到它,謝謝你們!欣賞它。 – MNY

回答

1

從書;

在自身上該程序的輸出是
位數= 9 3 0 0 0 0 0 0 0 1,空白= 123,其它= 345

與它自己的源作爲試圖它輸入;

> gcc test.c 
> ./a.out < test.c 

digits = 9 3 0 0 0 0 0 0 0 1, white space = 125, other = 345 

關閉,但我懷疑從StackOverflow上的cut'n'paste可能佔2個額外的空格:)

+0

得到它的感謝! @Joachim Isaksson – MNY