我目前正在通过 K&R 工作,但在搜索网络、再次尝试并搜索更多内容后,我陷入了困境,我来到 stackoverflow 寻求帮助!
任务是创建一个直方图,聚合每个单词中的字母数量,然后将信息显示为直方图。
我已经弄清楚了直方图部分,但我无法计算单词。
当我输入几个单词然后按 Ctrl+D 发送 EOF,并打印每个字符输入的出现次数;我在 index[0] 上返回了一个很大的值,通常在 '15773951' 周围
只是为了澄清我的代码将继续添加到 wc,用于计数字符的值,直到找到空格、换行符或制表符。然后它将使用一个数组来存储每个单词大小发生的次数,通过增加索引位置等于字长。
int main(void){
int c, i, status, wc;
int numbers[array_size];
wc = 0; //used to count number of chars
//innitialize array
for(i=1; i<array_size; i++)
numbers[i] = 0;
/*start counting letters*/
while((c = getchar()) != EOF){
/*check if c is a space*/
if((c=' ')||(c='\t')||(c='\n')){
numbers[wc-'1']++;
wc = 0;
}else{
++wc;
}
}
printf("word size occured: ");
for(i=0;i<array_size;i++)
printf("%d\n", numbers[i]);
}
有代码,任何人都可以向我解释为什么这种情况不断发生这里也是一个输出示例:
word size occured: 15773951
0
0
0
0
0
0
0
0
0