有人可以帮我找到为什么没有输出?

时间:2018-02-16 22:50:23

标签: c

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void) {
   char str[50];
   int count[26] = {0};
   int x;
   int len;
   int max;

printf("Enter your input: ");
scanf("%s", str);

while( ! feof(stdin)) {
  len = strlen(str);
  for(x = 0; x < len; ++x) {
    char ch = str[x];
    int sub = ch - 97;
    count[sub] = count[sub] + 1;
  }
  scanf("%s", str);
}
max = count[0];
for(x = 0; x < len; ++x) {
    if(count[x] > max){
      max = count[x];
    }
}

printf("Missing letters: ");
for(x = 0; x < 26; ++x) {
  if(count[x] == 0) {
    x = x + 97;
    printf("%c", x);
  }
}
printf("\n");
return 0;
}

我是C的新手,我一直试图解决这个问题几个小时,我只是不理解。我认为问题出在while循环中,但我刚开始编码我不知道。任何人都会跳出什么事吗?这应该读取一个句子并输出未见的字母。谢谢。

1 个答案:

答案 0 :(得分:0)

您的while循环仅在有EOF时终止。使用Ctrl ^ D发送EOF信号以逃避feof功能。