我是一名C n00b,试图在K&R上自学C语言.我的问题有点令人尴尬的基本问题.好的,这里说:我无法使用getchar获取程序,以提供我期望的那种输出.如果你碰巧有K&R,我会坚持练习1.13.问题是,"编写一个程序来打印输入中单词长度的直方图."我甚至无法处理水平版本,因为我遇到了这个问题.
我在XP上使用Dev-C++(mingW编译器)并在命令行下运行程序.我的问题是,当我尝试运行我的程序,它等待我进入字符从扫描,但是当我做输入并按下回车键,它不会做任何事情.我希望它继续按照我的预期打印直方图.实际上,它似乎甚至没有计算字长,因为你可以在代码中看到,当我尝试打印ctr数组中的内容只是为了看它是否包含任何东西时,什么都没有打印出来.
我是如此n00b,我不知道这是我的代码或命令行是否有问题.但我怀疑它与系统有关,因为当我尝试编译并运行模型程序时,同样的事情发生了.输入输入,按Enter键,没有任何反应.如果我是Ctrl-C,有时会吐出一个星号或两个看起来与模型输出完全不同的星号.其他时候,它没有做任何事情(只是回到提示).
这是我练习的代码.我花了一整天的时间来质疑我继续编程的能力.如果有人能让我走出这个洞,我真的非常感激!
另外,我还有一个关于我上面提到的模型程序的问题,但我想我应该在自己的问题中发布它.谢谢大家:)
#include <stdio.h>
//#define 1 IN
//#define 0 OUT
int main () {
//start w/ state = OUT
int c = 0;
// int state = OUT;
int len = 0;
int ctr[12];
int i, j;
i = j = 0;
for (i = 0; i <12; i++)
ctr[i] = 0;
while ((c = getchar()) != EOF)
if (c != ' ' && c != '\t' && c != '\n') {
// state = IN;
len++;
printf("%d", len);
}
else {
ctr[len]++;
len = 0;
}
for (i = 0; i <12; i++)
printf("%d\n", ctr[i]);
for (i = 0; i <12; i++) {
printf("%d\n", i);
for (j = 0; j <= ctr[i]; j++)
printf("-");
printf("\n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)