2016-08-14 25 views
-4

コードをコンパイルして実行した後に表示されます。C++ルーピングとscanfでアルファベット、大文字アルファベットと数字が有効になる

私の仕事は、数字/アルファベット/大文字を繰り返し入力し、それに応じて結果を出力することです。 whileループについては、while(1)を入れなければならないと思います。

#include <stdio.h> 
int main() 
{ 
    char c; 
    int num; 

    printf("\nEnter a character: "); 
    scanf("%c", &c); 

    if ((c >= 'a' && c <= 'z')) 
     printf("%c\nIt is an alphabet.", c); 

    if ((c >= 'A' && c <= 'Z')) 
     printf("%c\n It is a capital alphabet.", c); 

    if (c <= '1' ||c >= '1') 
     printf("\nIt is a numeric"); 

    else 
     printf("error"); 

return 0; 
} 
+0

'else if'チェインが存在する必要があります。そこにはありません... – LogicStuff

+1

'if(c <= '1' ||c > =' 1 ')'が間違っています。 - コードをデバッグしようとしましたか? –

+1

学習している言語を正確に把握してください。あなたのコードはCに似ています.CとC++は非常に異なる言語です。 –

答えて

0

3つの変更が必要です。

まず第一には、数値を使用c >= '0' && c <= '9'をテストするために、第二else if

を使用しています。バッファ内にあり、あなたがこのように動作し必要scanf

+0

よろしいですか。 @LogicStuff。それ以前はASCII値を使って私の心に浮かんできました。 –

1

によって取られない\n文字を食べるために、ループの最後のステートメントとしてgetchar()を使用します:

そして最後にではなく、少なくともを

#include <stdio.h> 

int main() 
{ 
char c; 
int num, int general=0; 

printf("\nEnter a character: "); 
scanf("%c", &c); 



if ((c >= 'a' && c <= 'z')) { 
    printf("%c\nIt is an alphabet.", c); 
    general++; 
    } 


if ((c >= 'A' && c <= 'Z')){ 
    printf("%c\n It is a capital alphabet.", c); 
    general++; 
    } 

if (c <= '1' ||c >= '1') { 
    printf("\nIt is a numeric"); 
    general++; 
    } 


if (general==0) 
    printf("error"); 

return 0; 
} 

または「キャッチアンドスイッチ」で使用できます。

関連する問題