我目前正在编写一个程序,它接受用户输入的句子并计算句子中的空格,制表符和换行符的数量,然后打印这些值。
输入以!
或.
或?
字符终止。
我遇到的问题是,当输入结尾输入上述任何字符时,我的程序似乎没有结束。
这是目前的计划:
#include <stdio.h>
int main(void)
{
int space = 0, tab = 0, newline = 0;
int sentence;
printf("Enter a sentence (end by '.' or '?' or '!'):");
do{
sentence = getchar();
if(sentence == ' '){
++space;
}
else if(sentence == '\t'){
++tab;
}
else if(sentence == '\n'){
++newline;
}
}
while((sentence != '.')||(sentence != '!')||(sentence != '?'));
printf("Number of space characters: %d\n", space);
printf("Number of new line characters: %d\n", newline);
printf("Number of tabs: %d\n", tab);
return 0;
}
我很难过,感谢任何帮助。
答案 0 :(得分:2)
只需替换|| (或)与&amp;&amp; (和)因为在你的情况下,对于每个字符,三个条件中的两个将始终为真,这就是为什么while循环变为无限。