0
我在C中編寫了一個程序來計算段落中單詞的數量。在終端屏幕上,它只需要一個句子作爲輸入,然後凍結。任何想法爲什麼?我嘗試了其他方法,他們工作。只是想知道爲什麼這個沒有。 這裏是我的代碼:使用C計算段落中的單詞C
#include <stdio.h>
#include <conio.h>
int main(void)
{ int i, m=0, t=1;
char x, a[100];
clrscr();
printf("Type a paragraph to count the words in it.\n");
while(t==1)
{ i=0;
while(x!='\n')
{ x=getchar();
a[i]=x;
i++;
if((x==' ')||(x=='.')||(x=='?')||(x=='!'))
m++;
}
if(a[0]=='\n')
t=0;
}
printf("\nNumber of words = %i", m);
getch();
return 0;
}
編輯: 我試圖在這裏使用的邏輯是: 內環發生在高達100個字符的話。遇到\ n字符後,退出循環。外循環用於將100個字符的限制擴展到無限數量的字符(直到外循環退出)。如果在前一個循環以\ n結束之後立即在第一個循環中遇到\ n字符,則會退出外循環。這意味着要結束一個段落,您需要輸入\ n \ n。
注意:'if(a [0] =='\ n')'????? –
也有關:'while(x!='\ n')' - 仔細看看。在初始進入外部循環時,'x'具有什麼值?如果你的答案是「我不知道」,那麼你的公司很好,因爲你的代碼也沒有。 – WhozCraig
@SamuelPeter您還需要一些東西來標記段落的結尾,例如雙\ n,否則它將被限制爲只有一個句子。 –