2017-05-21 17 views
1

小さなアルファベットのプログラムを数えました。C while無限ループ印刷エラー

しかし、意図しない結果が返されます。

output

私が欲しい一度ループごとに印刷するための「文字を入力してください」。

#include<stdio.h> 
#pragma warning (disable : 4996) 

int main() { 
char a; 
int b = 0, d = 0; 

while (1) { 

    printf("Please enter a character <escape .>"); 
    scanf("%c", &a); 

    if (a == '.') 
     break; 

    if (a <= 'a' || a >='z') { 
     d = d + 1; 
     continue; 
    } 

} 

printf ("Number of lower case letters %d", d); 

getchar(); getchar(); getchar(); 
return 0;} 

は私が

+1

である必要があります。ご親切にありがとうございました。 –

答えて

1

のscanfによって消費なった

scanf(" %c", &a); 

の空白によって

scanf("%c", &a); 

を交換して助けてください。 %cの前にscanf()で空白を使用すると、空白を省略することができます。

P.S.小文字のアルファベットを検出するには、実際のif条件は

if (a >= 'a' && a <='z')  
+0

P.P.S.小文字を検出するには、ライブラリ関数['islower'](http://en.cppreference.com/w/c/string/byte/islower)があります。 – InternetAussie

+0

私はあなたの助言に従った。私が望む結果を得ました。間違った部分を指摘していただきありがとうございます。 –

+0

あなたのために働く場合は、答えを受け入れてください。答えの左側にある目盛りをクリックします。 –