当前位置: 首页 > 知识库问答 >
问题:

C中的单词计数程序

尉迟正奇
2023-03-14

我指的是学习 C 的 K 和 R 书;它是关于在字数统计程序中使用 EOF 的 while 循环,书中给出的程序运行良好,但我想知道它如何在一次输入后停止接受输入并给出带有行、单词、

请帮助我理解这个程序中到底发生了什么来打破循环。

附加代码和输出 -

#include<stdio.h>

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

/* count lines, words, and charaters in input */

main()
{
    int c, n1, nw, nc, state; /* n1 for line count, nw for word count, & nc for character count */

    state = OUT;
    n1 = nw = nc = 0;
    while ( ( c = getchar() ) != EOF ){

    ++nc;
    if ( c == '\n')
    ++n1;
    if ( c == ' ' || c == '\n' || c == '\t')
    state = OUT;
    else if ( state == OUT) {
        state = IN;
        ++nw;
    }
    printf ( "%d %d %d \n", n1, nw, nc);

    }
}

共有1个答案

姚航
2023-03-14

循环还没有结束。您可以通过输入更多字符并按回车键来验证这一点。您将看到更多输出。这是因为这个printf

printf ( "%d %d %d \n", n1, nw, nc);

在循环中。它将在循环的每次迭代中执行。

如果希望在使用 CTRL ZEnter 发送 EOF 后看到输出,请将 printf 移到循环之外。

 类似资料:
  • 我需要制作一个程序,通过用户的输入来计算单词、句子和字母的数量。在我给出的输入是多行的之前,这个程序工作得很好。如果输入长度超过终端窗口中可容纳的文本长度,程序将开始忽略所有句号/问号/感叹号。我不知道为什么,我需要一些帮助。如果文本可以放在终端窗口的一行中,则不会发生这种情况。我还打印了程序读取的每个字符,但这也忽略了所有的句号/问号/感叹号。这些字符都不会被打印出来。为了澄清,一个句子只是句号

  • 问题内容: 这是Hadoop字数统计Java映射并减少源代码: 在map函数中,我已经到了可以输出所有以字母“ c”开头的单词以及该单词出现的总次数的位置,但是我想做的就是输出总数以字母“ c”开头的单词,但我在获取总数上有些停留。任何帮助将不胜感激,谢谢。 例 我得到的输出: 可以2 罐3 猫5 我想要得到的是: 合计10 问题答案: 克里斯·格肯 的答案是正确的。 如果您要输出单词作为关键字,

  • 计数是整数的序列,按升序排列,不为零。 开发一个用C编程语言计数的程序很简单,我们将在本章中看到。 算法 (Algorithm) 让我们首先看看计数的逐步程序应该是什么 - START Step 1 → Define start and end of counting Step 2 → Iterate from start to end Step 3 → Display loop

  • 以下是一个练习的说明,我必须解决cs50 pset2可读性问题(从站点粘贴副本): 你的程序应该计算文本中字母、单词和句子的数量。您可以假设字母是从a到z的任何小写字符或从a到z的任何大写字符,由空格分隔的任何字符序列都应算作一个单词,句号、感叹号或问号的任何出现都表示句子的结尾 这些不是完整的说明,只是我有问题的部分。 我知道如何计算课文中的字母数,但我不知道如何计算单词和句子。我试着用谷歌搜索

  • 本文向大家介绍C语言编程中统计输入的行数以及单词个数的方法,包括了C语言编程中统计输入的行数以及单词个数的方法的使用技巧和注意事项,需要的朋友参考一下 统计输入的行数 标准库保证输入文本流以行序列的形式出现,每一行均以换行符结束。因此,统计行数等价于统计换行符的个数。 在该程序中,while 循环语句的循环体是一个 if 语句,它控制自增语句++nl。if 语句先测试圆括号中的条件,如果该条件为真

  • 本文向大家介绍python列表中有计算单词串联数量的程序,包括了python列表中有计算单词串联数量的程序的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个字符串列表;我们还必须在列表中找到与其他单词串联的单词数量。连接和连接任意次数时,我们可以重用单词。 因此,如果输入像单词= [“” hello“,” world“,” helloworld“,” famous“,” worldfamou