2016-08-14 1 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

세 가지 변경이 필요합니다. 모든

먼저 숫자를 사용 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; 
} 

또는 "캐치 앤 스위치"에서 사용할 수 있습니다.