실수인지 아닌지를 판별하는 프로그램을짤려고하는데요(조금급합니다 ㅠㅠ)
글쓴이: dmlflvk1 / 작성시간: 화, 2013/05/14 - 6:29오후
#include<stdio.h>
void main()
{
int state=0, sym;
char ch;
int any=0;
int a[11][5] = {{2,10,10,1,9}
,{2,10,10,10,9}
,{2,5,10,10,3}
,{4,5,8,10,10}
,{4,5,8,10,10}
,{7,10,10,6,10}
,{7,10,10,10,10}
,{7,10,8,10,10}
,{10,10,10,10,10}
,{4,10,10,10,10}
,{10,10,10,10,10}};
do{
ch = getchar();
if(ch=='\n')
return 0;
}
while((ch=getchar())!='\n'){
if(ch==0||1||2||3||4||5||6||7||8||9)
sym=0;
else if(ch=='e'||'E')
sym=1;
else if(ch=='f'||'F'||'l'||'L')
sym=2;
else if(ch=='+'||'-')
sym=3;
else if(ch=='.')
sym=4;
else
printf("");
}
state = a[state][sym];
if(state=8)
printf("실수입니다.");
else
printf("실수가아닙니다.");
}
}첫째. 이프로그램은 사용자가 앤터만 칠때까지 계속돌아야되구요
둘째. 실수갑을 사용자가치면 실수입니다 가뜨고 실수값이 아닌값을치면 실수가아닙니다라고 나와야되요;;;;
도데체 어디가문제인지를모르겠네요ㅠㅠ
고수님들 좀부탁드립니다(_ _)
Forums:


...
.
두 가지 조건을 만족하는 경우를 찾기 위해선 ch
두 가지 조건을 만족하는 경우를 찾기 위해선
ch == 0 || ch == 1
라고 쓰셔야 합니다.
ch == 0 || 1 라고 쓸 경우
0 || 1 가 먼저 평가되서 1이라는 값을 가지게 되고 ch == 1 이 평가되면서 ch이 1과 같은지 비교하게 됩니다.
n가지 조건을 만족하는 경우에 대해서도 마찬가지 입니다.
state=8 -> state == 8
state=8 -> state == 8
댓글 달기