打印字长不正常的字符串

时间:2013-08-01 21:01:15

标签: c arrays

我的代码没有按预期工作。我创建一个数组来跟踪单词长度。对于输入“测试测试”,我想输出数组:[0 0 0 3 0 0 0 0 0 0]。

我的实际输出是:[0 0 0 0 2 0 0 0 0 0]

这是我的代码:

#include <stdio.h>

main()
{
int c, i, characters;
int word_lengths [10];

characters = 0; //word character count

for (i = 0; i <10; ++i)
    word_lengths[i] = 0;  //initialize histogram

while ((c = getchar()) != EOF)
{
    if (c == ' ' || c == '\t' || c == '\n'){   //if blank/tab/new line, reset the character count for new word
        if (characters != 0){     //end of word, increment word length count
            ++word_lengths[characters-1];   //array index starts at 0
        }
        characters = 0;
    }
    else {  //inside a word: increment character count
        ++characters;
    }

}
++word_lengths[characters-1];

for (i = 0; i <10; ++i)
    printf("Length of words = %d\n", word_lengths[i]);
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

你确定你没有忘记编译你的更改吗?也许你做了一些代码更改,碰巧正在查看以前的版本。