注册 登录
编程论坛 C语言论坛

打印输入中单词长度的直方图。对C程序设计语言第二版内的练习题尝试自己编写的小代码,测试一切正常,只不过比参考答案功能少一点,重在自己尝试。第一次上传,勿喷,给小

厕所逗蛆 发布于 2018-12-08 22:00, 1405 次点击
#include<stdio.h>
#define MAXWORD 11
main()
{
    int n,i,j,k,c;
    n = 0;
    int wordlength[MAXWORD];
    for (i = 0; i < MAXWORD; i++)
        wordlength[i] = 0;
    while ((c = getchar()) != EOF)
    {
        if (c == ' '||c == '\t'||c == '\n')
        {
            ++wordlength[n];
            n = 0;
        }
        else n++;

    }
    printf("单词中的字母数  对应单词数\n");
    for (j = 1; j < MAXWORD; j++)
    {
        printf("%12.0d\t:", j);
        for (k = 0; k < wordlength[j]; k++)
            printf("*");
        printf("\n");
    }
    system("pause");
    return 0;
}
3 回复
#2
莱布尼茨2018-12-09 00:06
额,system("pause")是<stdlib.h>里的,你这没加上去不报错?能给张截图不?我看不大明白是怎么输入的。
#3
Mr_doge2018-12-09 14:51
回复 2楼 莱布尼茨
while ((c = getchar()) != EOF)
while判断入口已经接收输入了,getchar()函数是单字符读取的函数

很多编译器会自动补上没标注的缺少了的标准库,所以报错与否看编译器
#4
厕所逗蛆2018-12-09 20:59
回复 2楼 莱布尼茨
我用的Visual Studio 2017.
该程序运行没有报错。输入是直接输完几个单词,然后换行CTRL+z,它告诉程序我输入完毕相当于放了EOF。然后回车,程序出结果。
1