실수인지 아닌지를 판별하는 프로그램을짤려고하는데요(조금급합니다 ㅠㅠ)
글쓴이: 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
댓글 달기