|
1. if(pp[i]<0x30 || pp[i]>0x39)
2. if(pp[i]<0x30 && pp[i]>0x39)
1이 맞고 2는 틀립니다.
님의 코드를 위 부분만 수정해서 하니 잘 됩니다.
김학래 님이 쓰신 글 :
: 일단 답변은 고맙습니다....
:
: 하지만 그방법도 해보았지만 결과는 같습니다....
:
: 다른해결책은 없는지요........
:
: 임문환 님이 쓰신 글 :
: :
: : 숫자가 아닌지 비교하려면 아래와 같이 해야 합니다.
: : if(pp[i]<0x30 || pp[i]>0x39)
: :
: : 아스키 코드표에서 '0'은 십진수로는 48이고 16진수로는 30입니다.
: :
: :
: : 김학래 님이 쓰신 글 :
: : : 아스키 코드값을 비교해서 0~9사이의 값이 아니면
: : :
: : : 프린트함수를 실행해야하는데 실행이 안되네요 ㅡㅜ
: : :
: : : 고수님들 좀 가르쳐주세요......
: : :
: : : 제가 작성한 겁니다..... 이게 해결이 되어야지 다음 단계로
: : :
: : : 넘어갈수 있거든요 제발 가르쳐주세요........
: : :
: : : #include <stdio.h>
: : : #include <string.h>
: : :
: : : main()
: : : {
: : : char pp[12],p[40];
: : : int a=0,i,c=0,z=0;
: : : back1:;
: : : printf("숫자를 입력하세요[부호포함12자리이하] : ");
: : : scanf("%s",pp);
: : :
: : : a = strlen(pp);
: : :
: : : for(i=a-1;i>=0;i--){
: : : if(pp[i]<30 && pp[i]>39){
: : : printf("입력하신 데이터는 숫자가 아닙니다.");
: : : goto back1;
: : : }
: : : }
: : : }
: : :
: : :
|